IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

FileReader: charger un .txt à coté du .jar


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2013
    Messages : 18
    Par défaut FileReader: charger un .txt à coté du .jar
    Bonjour à tous!

    Je souhaite pouvoir lire un .txt se trouvant à coté d'un .jar (qui est le programme executé).

    Pour cela, j'ai trouvé une méthode pour obtenir l'emplacement du .jar

    EDIT: Ce code fonctionne. L'erreur provenait d'ailleurs. Dsl.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    					File f = new File(System.getProperty("java.class.path"));
    					File dir = f.getAbsoluteFile().getParentFile();
    					String path = dir.toString();
    					System.out.println("Emplacement dans lequel chercher : "+path);
    Je sais pas trop comment tout fonctionne, mais il me renvoie effectivement l'emplacement du .jar
    à savoir : Le problème est au moment où j'essaie de charger le fichier:
    (étant sur linux, pour l'instant j'ajoute simplement un "/" plustot qu'un System.truc.dossierSeparateur)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    BufferedReader bufferedReaderTest = new BufferedReader(new FileReader(path+"/"+"Fichier.txt"));
    Je reçois cette erreur sur la console, et mon programme est tué :-/
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    java.io.FileNotFoundException: file:/home/user1/Bureau/TriBaseDeDonneesV0.00.1.jar!/triBaseDeDonnees/Fichier.txt (No such file or directory)
    -->Pourquoi cherche t'il là dedans (dans mon jar) plustot que l'adresse renvoyée par path? (à savoir : )

    Que faire pour charger un fichier .txt se trouvant à coté du .jar? (et pas dedans donc)

    Merci pour votre aide

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Hello,

    Citation Envoyé par eldorico Voir le message
    -->Pourquoi cherche t'il là dedans (dans mon jar) plustot que l'adresse renvoyée par path? (à savoir : )
    Il est très probable que tu te trompes, et que la variable path que tu utilises ne contienne pas "/home/user1/Bureau" mais "file:/home/user1/Bureau/TriBaseDeDonneesV0.00.1.jar!/triBaseDeDonnees".
    Vérifie.

    Citation Envoyé par eldorico Voir le message
    (étant sur linux, pour l'instant j'ajoute simplement un "/" plustot qu'un System.truc.dossierSeparateur)
    Le / marche très bien partout, pas de raison de s'en priver, linux, Windows ou autre.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2013
    Messages : 18
    Par défaut
    Merci mais je veux bien vérifier mais à part afficher le path à travers un string comme j'ai fait au message du dessus, mais je vois pas comment vérifier autrement :-/

    J'ai raté qqchose?

    Vérification:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.out.println("Emplacement dans lequel chercher : "+path);
    Résulat:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Emplacement dans lequel chercher : /home/user1/Bureau
    java.io.FileNotFoundException: file:/home/user1/Bureau/TriBaseDeDonneesV0.00.1.jar!/triBaseDeDonnees/Fichier.txt (No such file or directory)
    	at java.io.FileInputStream.open(Native Method)
    	at java.io.FileInputStream.<init>(FileInputStream.java:140)
    	at java.io.FileReader.<init>(FileReader.java:72)

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Je ne serai sûr de rien tant que je ne verrai pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    System.out.println("Emplacement dans lequel chercher : "+path);
    BufferedReader bufferedReaderTest = new BufferedReader(new FileReader(path+"/"+"Fichier.txt"));
    Deux lignes qui se suivent, avec rien entre les deux, et qui s'assurent donc que la variable "path" dans la première ligne et la variable "path" dans la deuxième ligne, est la même variable dans les deux cas et que son contenu ne change pas entre les deux.

    Mais si c'est vraiment ce que tu fais, alors, je ne sais pas. FileReader n'est pas censé inventer un "file:" devant et un "/TriBaseDeDonneesV0.00.1.jar!/triBaseDeDonnees" au milieu. Ça n'a aucun sens. Chez moi, il ne fait ça en aucune circonstance.
    Mais j'utilise une JRE fournie par Oracle. Peut-être que tu utilises une JRE bizarre, qui ne vient pas de chez Oracle, et qui fait des trucs louches dans FileReader. Difficile de deviner.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre Expert
    Inscrit en
    Mai 2006
    Messages
    1 364
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 1 364
    Par défaut
    Moi, je vote que tu utilises une variable différente de celle que tu affiches qui n'est pas initialisée de la meme maniere

    Bref, postes le code concerné qu'on y voit plus clair

  6. #6
    Membre averti
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2013
    Messages : 18
    Par défaut
    Je suis vraiment confus...

    Pour avoir revérifié le lendemain sans état d'âme à jeter l'écran par la fenêtre, je me suis rendu compte de mon erreur:
    Le code que je vous ai posté fonctionne, et l'erreur reçue vient de plus bas: Il fallait refaire la même operation, et cette operation n'était pas faite comme je vous l'ai posté.

    Je suis désolé d'avoir posté ça pour rien.

    Encore désolé

    Pour vous consoler (un peu peu être), j'ai néanmoins appris que les "/" fonctionnent très bien en tant que séparateurs de dossiers pour linux, windows, OSX.
    Je vous remercie pour votre attention.

    Je vais aller me cacher maintenant

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [ClassLoader]Charger les classes d'un Jar
    Par GLDavid dans le forum Langage
    Réponses: 5
    Dernier message: 19/10/2007, 17h22
  2. [open office] [mysql] charger un txt dans un calc
    Par titiyo dans le forum Bases de données
    Réponses: 3
    Dernier message: 04/10/2007, 13h09
  3. Charger un txt dans tableau html
    Par tondeuz dans le forum Langage
    Réponses: 5
    Dernier message: 30/05/2007, 15h21
  4. [JAR] Lire un fichier txt dans un Jar
    Par flzox dans le forum Entrée/Sortie
    Réponses: 13
    Dernier message: 28/08/2006, 01h30
  5. Réponses: 1
    Dernier message: 16/01/2006, 16h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo