[JAVA]Probleme lecture ligne dans fichier txt

Résolu/Fermé
bitterwizard Messages postés 3 Date d'inscription vendredi 21 décembre 2007 Statut Membre Dernière intervention 25 décembre 2007 - 21 déc. 2007 à 00:20
bitterwizard Messages postés 3 Date d'inscription vendredi 21 décembre 2007 Statut Membre Dernière intervention 25 décembre 2007 - 23 déc. 2007 à 19:27
Bonjour, pouvez vous m'aider s'il vous plait j'ai le code suivant en java


import java.io.*;
import java.util.*;

public class fichier {



String datas="datas.txt";
String ligne;




public fichier() {



// FileInputStream fis = new FileInputStream(datas);
try {


BufferedReader br = new BufferedReader(new FileReader(datas));



ligne=br.readLine();
StringTokenizer st=new StringTokenizer(ligne, ",");
while ((ligne = br.readLine()) != null) {
while(st.hasMoreTokens())

System.out.println(st.nextToken());


}

br.close();
}
catch (Exception e){
e.printStackTrace();
}
}



public static void main(String agrs[]){

new fichier();
}

}




Le probleme c'est qu'il m'affiche seulement la premiere ligne du fichier, pouvez vous me dire comment faire pour afficher toutes les lignes ? Merci d'avance.
A voir également:

2 réponses

kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
21 déc. 2007 à 13:23
Bonjour,

Quand tu as un problème il faut chercher à le résoudre et se poser les bonnes questions.
Tu peux donc commencer par : qu'est ce que mon programme fait ? Dans ton cas il n'affiche que la premiere ligne.
Ok, mais alors pourquoi que la premiere ligne ? Et là tu regarde ton code et de demandant : qu'est ce que j'affiche point de vue code ?
La réponse :
 System.out.println(st.nextToken()); 


Ok, ce fameux 'st' ou est ce que je le change par rapport à ce que je lis dans le fichier ?
La réponse saute aux yeux :
StringTokenizer st=new StringTokenizer(ligne, ","); 


Et là normalement tu te dis : ok, donc ce que j'affiche dépend de ce que j'ai dans ligne, mais encore faut-il faire cette opération dans ma boucle while pour que la variable 'st' soit raffraichie avec ce qu'il y a dans "ligne".

Conclusion : Il te manque cette instruction dans ta boucle while, comme suit :

ligne=br.readLine();
StringTokenizer st=new StringTokenizer(ligne, ",");
while ((ligne = br.readLine()) != null) {

st=new StringTokenizer(ligne, ",");
while(st.hasMoreTokens())

System.out.println(st.nextToken());


} 


En espérant que la démarche puisse te resservir.
0
bitterwizard Messages postés 3 Date d'inscription vendredi 21 décembre 2007 Statut Membre Dernière intervention 25 décembre 2007
23 déc. 2007 à 19:27
Merci beaucoup en effet je me sus appercu que j'avais oublié cette commande, merci encore !
0