Comment lire un fichier texte dans un jar ? [Résolu/Fermé]

thenaoh
Messages postés
111
Date d'inscription
dimanche 28 septembre 2003
Dernière intervention
24 juin 2015
- 17 mai 2006 à 09:40 - Dernière réponse : thenaoh
Messages postés
111
Date d'inscription
dimanche 28 septembre 2003
Dernière intervention
24 juin 2015
- 18 mai 2006 à 21:08
Bonjour à tous !

Dans mon appli, je fais régulièrement des lectures dans des fichiers texte, comme l'illustre l'exemple ci-dessous :
BufferedReader input = null;
try {
   input = new BufferedReader(new FileReader("/monChemin/monFichier.txt"));
   ligneInfo = input.readLine();
}
catch (IOException exLecture) {
   exLecture.printStackTrace();
}
finally{
   // fermeture du fichier :
   if (input ! = null) {
      try {
         input.close();
      }
      catch (IOException ex) {
         System.out.println(ex.getMessage());
      }
   }
}

Ce code marche très bien, tant que je reste sous Eclipse. Mais je souhaiterais savoir s'il est possible d'accéder à mon fichier texte une fois l'appli exportée dans un Jar exécutable, sachant que mon fichier texte se trouve également dans ce jar....

J'ai déjà essayé d'utiliser ClassLoader.getSystemResource(), mais sans succès, car cette méthode renvoie une URL, et que le constructeur FileReader ne peut prendre une URL en paramètre...

Merci par avance pour vos suggestions et votre aide !!
Afficher la suite 

5 réponses

Meilleure réponse
Twinuts
Messages postés
5292
Date d'inscription
dimanche 4 mai 2003
Dernière intervention
12 novembre 2018
- 17 mai 2006 à 12:11
2
Merci
Salut,

pour lire un fichier text dans un jar il faut utiliser la methode getRessourceAsStream

InputStream in = ClassLoader.getResourceAsStream(
                "chemin/fichier/dans/jar/fichier.txt");

exemple ici le fichier fichier.txt se trouve dans le package "chemin.fichier.dans.jar"

WORA

Merci Twinuts 2

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 94 internautes ce mois-ci

Commenter la réponse de Twinuts
indiana_jules
Messages postés
750
Date d'inscription
mardi 9 mars 2004
Dernière intervention
23 décembre 2008
- 17 mai 2006 à 09:52
1
Merci
Ben tu peux utiliser File non ? :
new BufferedReader(new FileReader(new File(monUrl)));

Voilà

le monde a des idées : la preuve, c'est qu'il y en a de mauvaises
ne comprends pas tout, mais je parle de tout : c'est ce qui compte
Commenter la réponse de indiana_jules
thenaoh
Messages postés
111
Date d'inscription
dimanche 28 septembre 2003
Dernière intervention
24 juin 2015
- 17 mai 2006 à 10:02
1
Merci
Bonjour !

Malheureusement non, car le constructeur File(URL) n'existe pas. J'ai aussi essayé avec :
      URL monURL = ClassLoader.getSystemResource("/monChemin/monFichier.txt");
      File monFichier = new File (monURL.toURI());
mais sans succès... il n'aime manifestement pas : monURL.toURI() ....

Merci quand même ! Si qqn a une idée ...
Commenter la réponse de thenaoh
thenaoh
Messages postés
111
Date d'inscription
dimanche 28 septembre 2003
Dernière intervention
24 juin 2015
- 18 mai 2006 à 21:08
0
Merci
Re-salut !!

Dans le même style j'ai également une autre question : comment lister les fichiers d'un répertoire dans un jar ??


http://www.javafr.com/infomsg_COMMENT-LISTER-FICHIERS-REPERTOIRE-DANS-JAR_741337.aspx


Merci beaucoup par avance !!
Commenter la réponse de thenaoh
thenaoh
Messages postés
111
Date d'inscription
dimanche 28 septembre 2003
Dernière intervention
24 juin 2015
- 17 mai 2006 à 23:23
-1
Merci
Yes !! Merci beaucoup, ça marche impec' !!

Pour résumer donc, il faut dans mon code ci-dessus changer la ligne :

input = new BufferedReader(new FileReader("/monChemin/monFichier.txt"));

par ceci :

InputStream in = ClassLoader.getResourceAsStream("/monChemin/monFichier.txt");
input = new BufferedReader(new InputStreamReader(in));

Voilo ! encore merci !!
Commenter la réponse de thenaoh

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.