FileReader ne fonctionne pas

Résolu
Bonjour,

je suis face à une erreur que je ne comprend pas du tout. Voici mon code :

BufferedReader br = new BufferedReader(new FileReader("C:\\exemple.txt"));


il y a juste ça pour l'instant ... Mais même si le fichier existe, j'ai essayer à plusieurs endroits, rien ne marche et me donne ceci :

Exception in thread "main" java.io.FileNotFoundException: ‪C:\exemple.txt (La syntaxe du nom de fichier, de répertoire ou de volume est incorrecte)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(Unknown Source)
at java.io.FileInputStream.<init>(Unknown Source)
at java.io.FileInputStream.<init>(Unknown Source)
at java.io.FileReader.<init>(Unknown Source)
at SReg.main(SReg.java:10)


Voila ... Merci :)

5 réponses

  1. Bon je crois que j'ai trouvé ! Ouf ! J'ai du faire ça :
    BufferedReader br = Files.newBufferedReader( Paths.get( "C://marche.txt" ));;


    Et la tout marche correctement ! Je sais toujours pas d'où viens mon problème de base mais cette alternative marche parfaitement !
    En tout cas merci énormément pour tout ce que tu as fait et sur ce, c'est Résolu !
    Merci beaucoup !
    1. Modérateur
      Le problème c'est que je n'arrive pas à reproduire chez moi, le code est bon et c'est censé fonctionner...

      Pour en apprendre encore d'avantage sur ton fichier essayes ceci :

      import java.io.File;
      import java.lang.reflect.Method;
      import java.nio.file.Files;
      import java.nio.file.attribute.DosFileAttributes;
      import java.util.Map;
      import java.util.TreeMap;
      
      public class ListRoots {
          public static void main(String[] args) throws Exception {
              for (File root : File.listRoots()) {
                  System.out.println(root);
                  File[] files = root.listFiles();
                  if (files != null) {
                      for (File file : files) {
                          System.out.println(file + "\n\t" + readAllAttributes(file));
                      }
                  }
              }
          }
      
          private static Map<String, String> readAllAttributes(File file) throws Exception {
              Map<String, String> result = new TreeMap<>();
              DosFileAttributes attributes = Files.readAttributes(file.toPath(), DosFileAttributes.class);
              for (Method method : DosFileAttributes.class.getMethods())
                  result.put(method.getName(), String.valueOf(method.invoke(attributes)));
              return result;
          }
      }

      Ce qui serait bien c'est de faire pareil en appelant directement la méthode readAllAttributes avec ton fichier (sans passer par la boucle sur tous les fichiers) et voir s'il y a des différences dans le résultat affiché.
      1. Modérateur
        Est-ce que tu pourrais essayer ceci :

        import java.io.File;
        
        public class ListRoots {
            public static void main(String[] args) {
                for (File root : File.listRoots()) {
                    System.out.println(root);
                    File[] files = root.listFiles();
                    if (files != null) {
                        for (File file : files) {
                            System.out.println(file);
                        }
                    }
                }
            }
        }

        En particulier regarder si 1) C:\ est bien listé et 2) C:\exemple.txt est listé
        1. J'ai essayé sur le pc d'un amis ça ne marche pas non plus, je dois faire quelque chose de mal :/
      2. Modérateur
        Bonjour,

        Est-ce que tu es administrateur de ta machine et a accès au répertoire C:\

        Essayes avec un fichier dans ton répertoire C:\Users
        La confiance n'exclut pas le contrôle
        1. Je suis administrateur et j'ai essayer de le mettre dans Users mais rien.
          J'ai aussi essayer avec
          /
          au lieu de
          \\
        2. Modérateur
          /
          ou
          \\
          c'est pareil, non là c'est Windows qui t'envoie une erreur, comme pour ta discussion d'hier sur l'exec, ça sent le problème de droits...
        3. J'ai essayer sur autre machine Windows et là ça deviens bizarre:

          - Un fois ça marche
          - Je copie la String je la recolle, ça marche pas
          - CTRL + Z, et ça remarche ...

          De mémoire c'est ce qui c'est passé même si ça me parait impossible (d'ailleurs je vais réessayer ) ...
        4. J'ai aussi Eclipse en administrateur.