Partage
  • Partager sur Facebook
  • Partager sur Twitter

Fichier non trouvé

Sujet résolu
    20 septembre 2016 à 18:34:50

    Bonjour à tous,

    J'ai un programme qui doit lire un fichier pour cela j'ai donc crée le répertoire ressources contenant un fichier texte écrit le code suivant:

    String content = new Scanner(new File("D:\\Users\\Utilisateur\\workspace\\tp1\\ressources\\fichiert.txt")).useDelimiter("\\Z").next();

    Le soucis est que le fichier que j'essaie de lire n'est jamais trouvé par java et je ne m'y connais absolument pas en lecture de fichier. J'ai vérifié le nom plusieurs fois si le fichier se trouvait bien dans le répertoire, le chemin absolue et le chemin relatif... rien à faire il continue de m'afficher exception filenotfound. J'ai inclus toutes les bibliothèques nécessaires et  ai essayé avec plusieurs techniques comme le FileReader. C'est toujours au niveau du new File(chemin) que le problème survient. ça peut juste être une bête erreur d'innatention ou peut être faut il dire a l'ide ou trouver la ressource je n'en ai aucune idée.

    Merci d'avance pour vos réponses.

    -
    Edité par lithiumrock 20 septembre 2016 à 18:38:20

    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      20 septembre 2016 à 19:04:44

      Salut,

      Déjà, première remarque: tu écris ton chemin en dur. (c'est pas terrible)

      static final String SEP = File.separator;
      File file_path = new File(System.getProperty("user.dir")  + SEP + "workspace" + SEP + "tp1" +SEP+ "ressources" + SEP + fichiert.txt);
      System.out.println(File.getPath());
      

      Ensuite, le fichier que tu cherches se nomme "fichiert.txt", es-tu sûr qu'il se nomme comme ceci plutôt que "fichier.txt" ?

      D'ailleurs, si tu peux gérer toi-même une erreur (comme la FnFexception), c'est mieux:

      static final String SEP = File.separator;
      File file_path = new File(System.getProperty("user.dir")  + SEP + "workspace" + SEP + "tp1" +SEP+ "ressources" + SEP + fichiert.txt);
      if(file_path.exists()) System.out.println(file_path.getPath());
      else 
      {
          System.out.print("Le fichier n'existe pas, voici le chemin que vous avez renseigné:");
          System.out.println(file_path.getPath());
      }
      

      -
      Edité par Anonyme 20 septembre 2016 à 19:08:35

      • Partager sur Facebook
      • Partager sur Twitter
        20 septembre 2016 à 19:18:22

        Merci pour ta réponse _SongBird_

        alors oui je suis sur qu'il se nomme fichiert.txt j'ai meme essayé avec fichiert.txt.txt. Et lorsque je fais

        String content = new Scanner(new File("D:\\Users\\Utilisateur\\workspace\\tp1\\ressources\\fichiert.txt").getAbsolutePath()).next();
        System.out.println(content);

        Il m'affiche le chemin absolu du fichier donc il existe mais c'est juste cette exception qu'il essaie de me lever qui me bloque.

        Bon j'ai mis un try catch au tour à la limite ça fonctionne en revanche est-ce qu'il est possible de le lire en mode binaire car mon fichier contient le caractère underscore et il est affiché étrangement lors de la compilation. Existe t'il une autre manière d'afficher les caractères unicode?

        -
        Edité par lithiumrock 20 septembre 2016 à 19:56:37

        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          21 septembre 2016 à 7:49:34

          Salut,

          >Il m'affiche le chemin absolu du fichier donc il existe

          Non, pas forcément.

          Un objet File fait abstraction de l'existence du fichier, il permet simplement au développeur de se créer une assertion.

          Sincèrement, tu devrais essayer de ne pas écrire en dur tes chemins, ça te portera préjudice un moment ou un autre. Idem pour les try/catch, on n'utilise jamais un try/catch pour masquer un bug, ils ne sont pas là pour ça.

          >mon fichier contient le caractère underscore et il est affiché étrangement lors de la compilation. Existe t'il une autre manière d'afficher les caractères unicode?

          Navré, mais je n'ai jamais eu de problèmes avec l'encodage en Java. (et en règle général, jamais sous Linux)

          • Partager sur Facebook
          • Partager sur Twitter
            21 septembre 2016 à 10:05:04

            Ok merci beaucoup _SongBird_, pour l'instant je débute donc je ne sais pas du tout ce qui est possible et ce qui ne l'est pas. Pour l'instant mon programme fonctionne avec le try catch je l'enlèverai dés que j'en aurais plus besoins. Et créerai un chemin dans une variable quand ce sera plus possible. Pour l'instant ce que j'ai fait c'est que j'ai crée une fonction qui lit le fichier et tout les caractères non voulu ne sont pas mis dans la chaine de caractères renvoyée.
            • Partager sur Facebook
            • Partager sur Twitter

            Fichier non trouvé

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown