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

Langage Java Discussion :

[debutant]lecture chemin d'acces a un fichier


Sujet :

Langage Java

  1. #1
    Candidat au Club
    Inscrit en
    Mars 2004
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 6
    Points : 2
    Points
    2
    Par défaut [debutant]lecture chemin d'acces a un fichier
    bonjour !
    Je lutte pour recuperer le chemin d'acces à un fichier que mon programme demande(en mode console):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    System.out.println("entrer le chemin d'acces au fichier corpus");
    byte[] lu = new byte[300];
    System.in.read(lu,0,300);
    String chemin = new String (lu,0,lu.length);
    System.out.println(chemin);
    BufferedReader entree= new BufferedReader(new FileReader(chemin));
    Ca me renvoie toujours une erreur qui me dit que le fichier dont j'ai entré le chemin n'existe pas (alors qu'il existe bien).
    Le chemin est bien affiché avant le fileReader, c'est donc bien sur cette ligne la qu'est l'erreur.
    Des idees ?
    Merci d'avance

  2. #2
    En attente de confirmation mail Avatar de Akira
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    85
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2002
    Messages : 85
    Points : 93
    Points
    93
    Par défaut
    Le chemin que tu donne est en relatif ou en absolu?

    A.

  3. #3
    Candidat au Club
    Inscrit en
    Mars 2004
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    en absolu (de type /home/moi/exemple)

  4. #4
    Membre chevronné
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Points : 2 208
    Points
    2 208
    Par défaut
    Je te conseille d'utiliser plutôt le code qui est donné dans la FAQ et qui utilise un InputStreamReader.
    Lien:Comment lire des informations sur l'entrée standard ?

    En effet, tu cherches à lire un flux de caractères et non un flux de d'octets. Il ne faut pas oublier qu'en Java les caractères sont codés sur deux octets.

    Plus d'informations : article sur java.io

  5. #5
    En attente de confirmation mail Avatar de Akira
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    85
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2002
    Messages : 85
    Points : 93
    Points
    93
    Par défaut
    Déjà essaye de faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    int nbRead = System.in.read(lu);
    String chemin = new String(lu, 0, nbRead - 2);
    plutot que:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    System.in.read(lu,0,300);
    String chemin = new String (lu,0,lu.length);
    Car sinon chemin contient forcément 300 caractères ce qui est trop.
    Le "-2" c'est pour ne pas prendre le /r/n mais c'est de la bidouille. Le mieux comme est bien d'utiliser la méthode donner dans la FAQ.

    A.

  6. #6
    Candidat au Club
    Inscrit en
    Mars 2004
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    c'est plus propre en effet, merci, mais ca ne fonctionne tjr pas

    en passant voila l'erreur que j'ai oubilé de poster plus haut:
    Exception in thread "main"
    java.io.FileNotFoundException: /home/pol/exemple
    (No such file or directory)
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.<init>(FileInputStream.java:106)
    at java.io.FileInputStream.<init>(FileInputStream.java:66)
    at java.io.FileReader.<init>(FileReader.java:41)
    at Moteur.loadDoc(Moteur.java:130)
    at Moteur.<init>(Moteur.java:13)
    at main.main(main.java:9)

  7. #7
    Membre chevronné
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Points : 2 208
    Points
    2 208
    Par défaut
    Plusieurs interrogations :
    • C'est quoi ton code à présent ?
    • ferme-tu correctement les flux ?
    • comment gère-tu les exceptions ?

  8. #8
    Candidat au Club
    Inscrit en
    Mars 2004
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    mon code c'est ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    System.out.println("entrer le chemin d'acces au fichier corpus");
    byte[] lu = new byte[300];
    int nbRead=System.in.read(lu,0,300);
    String chemin = new String (lu,0,nbRead);
    System.out.println(chemin);
    BufferedReader entree= new BufferedReader(new FileReader(chemin));
    L'erreur est annoncée sur la ligne de création du BufferedReader (la derniere ligne), l'avant derniere ligne est bien executee, elle me recopie bien le chemin que j'ai entré.
    Je ferme mon fichier une fois que j'ai tout lu dedans avec un
    Ici pas de gestion d'exceptions (je sais je devrai), la seule erreur "possible" etant le FileNotFound, ce qui se passe ici.

  9. #9
    En attente de confirmation mail Avatar de Akira
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    85
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2002
    Messages : 85
    Points : 93
    Points
    93
    Par défaut
    Tu as essayer mon code?

    Comment tu vérifie que dans ta variable "chemin" tu as bien exactement ce que tu as tapé? car ce n'était pas le cas en fait et c'est justement cela qui te posé problème.

    A.

  10. #10
    Candidat au Club
    Inscrit en
    Mars 2004
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    oui oui, j'ai essayé ton code.
    Alors, quand je met nbRead tout court:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String chemin = new String (lu,0,nbRead);
    il veut bien m'afficher le chemin indiqué (mais pas ouvrir le fichier), et quand je met nbRead-2:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String chemin = new String (lu,0,nbRead-2);
    il ne m'affiche pas le chemin entré, et pas non plus d'ouverture de fichier.

    Je n'ai aucune verification sur ma variable, mis a part l'affichage. Comment est ce que je pourrais verifier ca ?
    Merci d'avance !

  11. #11
    Membre chevronné
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Points : 2 208
    Points
    2 208
    Par défaut
    Je ne comprends pas pourquoi tu ne veux pas utiliser le code présent dans la FAQ ? .
    Enfin bref, je sèche là. A tout hasard essaye un trim() sur ta variable chemin, on ne sait jamais

  12. #12
    En attente de confirmation mail Avatar de Akira
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    85
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2002
    Messages : 85
    Points : 93
    Points
    93
    Par défaut
    Sinon essaye en suivant le conseil de Afrikha non? dans ton cas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    BufferedReader entree = new BufferedReader(new InputStreamReader(System.in));
     
    try {
            FileReader fileReader = new FileReader(entree.readline());
    } catch( IOException e ) {
            e.printStackTrace();
    }
    A.

  13. #13
    En attente de confirmation mail Avatar de Akira
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    85
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2002
    Messages : 85
    Points : 93
    Points
    93
    Par défaut
    Sinon borne ton affiche par un séparateur pour voir s'il n'y a pas de catactère masquer.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.out.println("***" + variable à afficher + "***");
    A.

  14. #14
    Candidat au Club
    Inscrit en
    Mars 2004
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    mon probleme, c'est que je veux que l'utilisateur entre le chemin du fichier (ici ds la console).
    Tous les exemples ds la faq sont soit avec un nom de fichier ecrit en dur ds le code, soit le nom arrive d'on ne sait où en parametre de la fonction.
    Merci quand meme pour l'aide


    edit: c'etait le trim ... ca marche bien maintenant, merci bcp à tous pour l'aide

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

Discussions similaires

  1. [Debutant] Recuperer le chemin d'acces d'un fichier
    Par kinon dans le forum ASP.NET
    Réponses: 3
    Dernier message: 16/02/2009, 18h33
  2. Récupérer le chemin d'accés d'un fichier
    Par massol joel dans le forum Contribuez
    Réponses: 2
    Dernier message: 24/10/2006, 17h03
  3. [VBA-E]récupérer le chemin d'accès d'un fichier
    Par gil68 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 05/02/2006, 19h50
  4. Réponses: 5
    Dernier message: 07/05/2004, 10h44
  5. Chemin d'accès d'un fichier
    Par guitaros dans le forum Langage
    Réponses: 6
    Dernier message: 16/01/2004, 10h27

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