FileReader ne fonctionne pas

Résolu
Utilisateur anonyme -  
 Utilisateur anonyme -
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. KX Messages postés 19031 Statut Modérateur 3 020
     
    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
    0
    1. Utilisateur anonyme
       
      Je suis administrateur et j'ai essayer de le mettre dans Users mais rien.
      J'ai aussi essayer avec
      /
      au lieu de
      \\
      0
    2. KX Messages postés 19031 Statut Modérateur 3 020
       
      /
      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...
      0
    3. Utilisateur anonyme
       
      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 ) ...
      0
    4. Utilisateur anonyme
       
      J'ai aussi Eclipse en administrateur.
      0
  2. KX Messages postés 19031 Statut Modérateur 3 020
     
    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é
    0
    1. Utilisateur anonyme
       
      J'ai essayé sur le pc d'un amis ça ne marche pas non plus, je dois faire quelque chose de mal :/
      0
  3. KX Messages postés 19031 Statut Modérateur 3 020
     
    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é.
    0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. Utilisateur anonyme
     
    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 !
    0