problème de lecture de fichier [JAVA] - Java - Programmation
Marsh Posté le 19-05-2004 à 14:21:40
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?
Marsh Posté le 19-05-2004 à 14:22:51
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...
Marsh Posté le 19-05-2004 à 14:23:38
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!
Marsh Posté le 19-05-2004 à 14:24:35
oui quand meme, je suis débutant mé quand meme...j'ai compris certains trucs
Marsh Posté le 19-05-2004 à 14:26:33
c bon, je pardonne mé plus sérieusement...y a une grosse bétise dans mon prog???
Marsh Posté le 19-05-2004 à 14:30:12
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 :
|
(tu as oublié le file.close().)
Il me semble que le while (line = buf.readLine() != null) marche, mais bon.
Marsh Posté le 19-05-2004 à 14:47:58
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)
Marsh Posté le 19-05-2004 à 14:49:27
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)
Marsh Posté le 19-05-2004 à 14:53:28
Trop bien merci je savais pas!!!!
j'ai un peu honte merci beaucoup!
ca marche trop bien
Marsh Posté le 19-05-2004 à 15:05:08
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?
Marsh Posté le 19-05-2004 à 15:07:35
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.
Marsh Posté le 19-05-2004 à 15:10:10
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
Marsh Posté le 19-05-2004 à 15:13:57
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.
Marsh Posté le 19-05-2004 à 15:17:03
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
Marsh Posté le 19-05-2004 à 15:27:20
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());
}
}
Marsh Posté le 19-05-2004 à 15:32:12
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!
Marsh Posté le 19-05-2004 à 15:34:49
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...
Marsh Posté le 19-05-2004 à 15:37:54
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
Marsh Posté le 19-05-2004 à 15:42:45
oups, oui, c'est normal!!
regarde :
Code :
|
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 :
|
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.
Marsh Posté le 19-05-2004 à 15:47:01
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!!!!
Marsh Posté le 19-05-2004 à 15:51:20
De rien, j'ai rien d'intéressant à faire, aujourd'hui!
Veille de week end de 4 jours, tu parles!
Marsh Posté le 19-05-2004 à 14:18:02
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());
}
}