FileReader ne fonctionne pas

Résolu/Fermé
Utilisateur anonyme - Modifié le 20 juil. 2017 à 19:13
 Utilisateur anonyme - 21 juil. 2017 à 20:05
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

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
Modifié le 20 juil. 2017 à 22:29
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
Je suis administrateur et j'ai essayer de le mettre dans Users mais rien.
J'ai aussi essayer avec
/
au lieu de
\\
0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
20 juil. 2017 à 23:55
/
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
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
Utilisateur anonyme
21 juil. 2017 à 00:02
J'ai aussi Eclipse en administrateur.
0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
21 juil. 2017 à 11:18
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
J'ai bien les 2 :
https://prnt.sc/fyh23y
0
Utilisateur anonyme
21 juil. 2017 à 15:14
J'ai essayé sur le pc d'un amis ça ne marche pas non plus, je dois faire quelque chose de mal :/
0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
21 juil. 2017 à 17:26
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
21 juil. 2017 à 20:05
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