Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2932 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  [JAVA] problème de lecture de fichier

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[JAVA] problème de lecture de fichier

n°731442
ju972
Posté le 19-05-2004 à 14:18:02  profilanswer
 

Bonjour, je souhaite lire un fichier qui en réalité est une liste de nom .
cette liste je veux l'utiliser dans un menu (les items du menu sont les noms de la liste (fichier texte)).
cependant, ma méthode de lecture de fichier m'indique  
[#0055aa]Erreur --java.io.FileNotFoundException: liste.txt (Le fichier spécifié est introuvable)
je vous montre mon prog .
ps: je ss débutante en java...
 
Merci d'avance
 
 
 
public void LireTest (){
 try {
     
  FileReader file = new FileReader ("liste.txt" );
  BufferedReader buff = new BufferedReader (file);
  boolean eof = false;
  while (!eof) {
   String line = buff.readLine();
   if (line==null)  
   eof = true;
   else  
    System.out.println(line);
          }
    buff.close();
    }
    catch (IOException e){
     
    System.out.println("Erreur --" + e.toString());
   }
  }

mood
Publicité
Posté le 19-05-2004 à 14:18:02  profilanswer
 

n°731447
gfive
Posté le 19-05-2004 à 14:21:40  profilanswer
 

c'est simpleent qu'il n'a pas trouvé ton ficher.
 
Est-ce que tu es sûre que le fichier est dans le répertoire courant où tu lances ton appli?
 

n°731449
ju972
Posté le 19-05-2004 à 14:22:51  profilanswer
 

oui je suis sure.
je travaille avec Eclipse et je le crée dans le même package que mes classes...
si je fé une grosse bétise, vous pouvez me dire...

n°731453
gfive
Posté le 19-05-2004 à 14:23:38  profilanswer
 

houlà...Et tu fais run avec Eclipse?? :)
Je crois qu'il crée un environnement d'exécution temporaire, Eclipse, et donc, si ton fichier n'est pas 'exporté' dans cet environnement en même temps que les classes, ben il ne va pas être trouvé....
 
Essaie, pour voir, de faire afficher le répertoire courant à l'exécution...Je pense que tu auras des surprises!


Message édité par gfive le 19-05-2004 à 14:24:52
n°731454
ju972
Posté le 19-05-2004 à 14:24:35  profilanswer
 

oui quand meme, je suis débutant mé quand meme...j'ai compris certains trucs

n°731455
gfive
Posté le 19-05-2004 à 14:25:06  profilanswer
 

scuse, edit!

n°731456
ju972
Posté le 19-05-2004 à 14:26:33  profilanswer
 

c bon, je pardonne mé plus sérieusement...y a une grosse bétise dans mon prog???

n°731459
gfive
Posté le 19-05-2004 à 14:30:12  profilanswer
 

non, justement, c'est pour ça que je pense plus à un problème à la con avec Eclipse.
 
Tu devrais peut être essayer de copier les classes ailleurs, et de le lancer à la main, pour voir.
 
Sinon, tu peux faire un tout petit peu plus "simple" :  
 

Code :
  1. public void LireTest (){
  2. try {
  3.    
  4.   FileReader file = new FileReader ("liste.txt" );
  5.   BufferedReader buff = new BufferedReader (file);
  6.   String line;
  7.   while ((line = buff.readLine()) != null) {
  8.     System.out.println(line);
  9.   }
  10.   buff.close();
  11.   file.close();
  12.    }
  13.     catch (IOException e){
  14.    
  15.     System.out.println("Erreur --" + e.toString());
  16.    }
  17.   }


 
(tu as oublié le file.close().)
 
Il me semble que le while (line = buf.readLine() != null) marche, mais bon.

n°731512
ju972
Posté le 19-05-2004 à 14:47:58  profilanswer
 

en mettant le close ca ne change rien
et j'ai essayé en mettant le chemin d'accès en entier  
 
FileReader file = new FileReader ("C:\Documents and Settings\Ju\Mes documents\Logiciels\eclipse\workspace\Increment1\espacededeveloppement\liste.txt" );  
 
 
java.lang.Error: Problème de compilation non résolu :  
 Séquence d'échappement non valide (les séquences valides sont  \b  \t  \n  \f  \r  \"  \'  \\ )
 
 at espacededeveloppement.Menu.LireTest(Menu.java:302)
 at espacededeveloppement.Menu.<init>(Menu.java:81)
 at espacededeveloppement.Main.main(Main.java:8)

n°731516
gfive
Posté le 19-05-2004 à 14:49:27  profilanswer
 

bah là, l'erreur vient du fait qu'il faut doubler les "\" dans les chaînes de caractères (\ est le caractère d'échappement, donc, il faut l'échapper lui même sinon, il n'apparaît pas)

mood
Publicité
Posté le 19-05-2004 à 14:49:27  profilanswer
 

n°731531
ju972
Posté le 19-05-2004 à 14:53:28  profilanswer
 

Trop bien merci je savais pas!!!!
j'ai un peu honte merci beaucoup!
ca marche trop bien

n°731540
gfive
Posté le 19-05-2004 à 14:55:45  profilanswer
 

:D Faut pas avoir honte, hein! :p

n°731552
ju972
Posté le 19-05-2004 à 15:05:08  profilanswer
 

C'est encore moi...
Maintenant que j'arrive à lire dans le fichier ma liste...je souhaiterai que cette liste s'affiche dans le menu. c'est à dire que cette liste soit une liste de choix du menu...je ne sais pas trop comment faire le lien avce ma méthode de lecture et ma méthode de menu?

n°731562
gfive
Posté le 19-05-2004 à 15:07:35  profilanswer
 

dans la classe qui gère le menu, il doit y avoir une méthode qui permet d'ajouter un item de menu.
 
Donc, dans la méthode qui lit le fichier, dans la boucle qui lit ligne à ligne, tu appelles la méthode d'ajout.

n°731566
ju972
Posté le 19-05-2004 à 15:10:10  profilanswer
 

Le problème c'est que là ou je ne sais pas trop comment faire, je suppose que c'est une question de droits d'accès des méthodes:
 while ((line = buff.readLine()) != null) {  
   System.out.println(line);  
   menuTests.add(new JCheckBox());
   }  
  buff.close();  
  file.close();  
 
menuTest ne peut pas etre résolu

n°731569
gfive
Posté le 19-05-2004 à 15:13:57  profilanswer
 

ben il faut que la classe qui lit le fichier connaisse la variable menuTests : soit en faisant en sorte que menuTests soit un attribut de la classe, soit en le passant en paramètre à la méthode qui lit le fichier.

n°731575
ju972
Posté le 19-05-2004 à 15:17:03  profilanswer
 

Comme ca?
public void LireTest (){  
 try {  
 JMenu menuTests = new JMenu ("Test" );        
 FileReader file = new FileReader ("C:\\Documents and Settings\\Ju\\Mes documents\\Logiciels\\eclipse\\workspace\\Increment1\\espacededeveloppement\\liste.txt" );  
 BufferedReader buff = new BufferedReader (file);  
 String line;  
  while ((line = buff.readLine()) != null) {  
   System.out.println(line);  
   menuTests.add(line);
   }  
  buff.close();  
  file.close();  
    }  
  catch (IOException e){  
             
   System.out.println("Erreur --" + e.toString());  
   }  
}  
Excuse moi si je comprends pas tout, mais je débute vraiment..alors désolé si mes questions sont pas très pertinentes

n°731582
gfive
Posté le 19-05-2004 à 15:22:08  profilanswer
 

oui, par exemple.

n°731595
ju972
Posté le 19-05-2004 à 15:27:20  profilanswer
 

Je suis un peu perdue... en fait je ne sais plus ou mettre mes composants...
Je te montre :
 
 
 //Menu Test
 JMenu menuTests = new JMenu ("Test" );
 
 LireTest();
 barre.add(menuTests);
 
 
 
public void LireTest (){  
 try {  
 JMenu menuTests = new JMenu ("Test" );    
 JMenuBar barre=new JMenuBar();    
 FileReader file = new FileReader ("C:\\Documents and Settings\\Ju\\Mes documents\\Logiciels\\eclipse\\workspace\\Increment1\\espacededeveloppement\\liste.txt" );  
 BufferedReader buff = new BufferedReader (file);  
 String line;  
  while ((line = buff.readLine()) != null) {  
   System.out.println(line);  
   JMenuItem test = new JMenuItem (line);
   menuTests.add(test);
   barre.add(menuTests);
   }  
  buff.close();  
  file.close();  
    }  
  catch (IOException e){  
             
   System.out.println("Erreur --" + e.toString());  
   }  
}  

n°731601
gfive
Posté le 19-05-2004 à 15:32:12  profilanswer
 

bah, là, ca devrait marcher, mais je ne peux pas te dire si c'est la meilleure façon de faire : je ne connais pas la structure du reste du programme, ni rien! :)

n°731603
ju972
Posté le 19-05-2004 à 15:34:49  profilanswer
 

Mais ca ne marche pas...ce que je ne comprends pas c'est qu'il affiche le menu Test mais on dirait qu'il ne passe pas dans la méthode car il n'affiche pas de sous menu...

n°731612
ju972
Posté le 19-05-2004 à 15:37:54  profilanswer
 

Lorsque je ne mets plus dans la méthode menu:
 JMenu menuTests = new JMenu ("Test" );  
il est donc uniquement dans LireTest(), alors dans ma barre de Menu je n'ai plus "Test"
ca doit paraitre con, ce que je demande, mé je n'ai pas encore trop la logique java

n°731626
gfive
Posté le 19-05-2004 à 15:42:45  profilanswer
 

oups, oui, c'est normal!!
 
regarde :  

Code :
  1. //Là, tu instancies ton menu, très bien...
  2. JMenu menuTests = new JMenu ("Test" );
  3. // Tu lis le fichier  
  4. LireTest();
  5. // Et tu ajoutes le menu...
  6. barre.add(menuTests);
  7. Jusques là, je suis d'acord,
  8. public void LireTest (){ 
  9. try
  10.   // Là, ça ne va pas : tu réinstancies un objet JMenu, qui a le nom menuTests, et qui n'est visible que dans la méthode LireTest
  11. JMenu menuTests = new JMenu ("Test" );   
  12.   ...
  13. }


 
Solution : soit, tout ce code est dans la même classe, et le menu est un attribut de la classe => tu peux enlever la ligne JMenu menuTests = new JMenu ("Test" ); et aussi ce qui concerne la barre de menu, de la méthode LireTests.
 
Soit, tu fait :  

Code :
  1. //Menu Test
  2. JMenu menuTests = new JMenu ("Test" );
  3. LireTest();
  4. barre.add(menuTests);
  5. public void LireTest (JMenu menuTests){ 
  6. try
  7.    FileReader file = new FileReader ("C:\\Documents and Settings\\Ju\\Mes documents\\Logiciels\\eclipse\\workspace\\Increment1\\espacededeveloppement\\liste.txt" ); 
  8. BufferedReader buff = new BufferedReader (file); 
  9. String line; 
  10.   while ((line = buff.readLine()) != null) { 
  11.    System.out.println(line); 
  12.    JMenuItem test = new JMenuItem (line);
  13.    menuTests.add(test);
  14.    } 
  15.   buff.close(); 
  16.   file.close(); 
  17.     } 
  18.   catch (IOException e){ 
  19.            
  20.    System.out.println("Erreur --" + e.toString()); 
  21.    } 
  22. }


 
Sinon, autre chose : les conventions de codage Java couramment admises veulent que seuls les noms de classe et les noms de constantes commencent par des majuscules : pas les noms de méthodes.

n°731642
ju972
Posté le 19-05-2004 à 15:47:01  profilanswer
 

C'est trop gentil
merci beaucoup pour ta patiente avce une malheureuse débutante et tes explications claires!!!!!
je suis trop contente, ca marche nickel!!!!

n°731653
gfive
Posté le 19-05-2004 à 15:51:20  profilanswer
 

:D De rien, j'ai rien d'intéressant à faire, aujourd'hui! :p
Veille de week end de 4 jours, tu parles! :D

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [JAVA] problème de lecture de fichier

 

Sujets relatifs
probleme de recherche dans un arraycombobox petit problème
[résolu] Créé un fichier sur le hdd[java] Probleme incomprehensible avec JDOM (long mais help please:'()
probleme mysterieux avec teste "IF"_actionscript_flashprobleme upload de fichiers
[Java] Pb avec l'API 1.4 de Logging - pb de Handler par défaut[java] détruire un objet
Problème de lecture de fichier avec java[JAVA] Probleme lecture fichier texte
Plus de sujets relatifs à : [JAVA] problème de lecture de fichier


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR