[JAVA]Probleme lecture ligne dans fichier txt

[Résolu/Fermé]
Signaler
Messages postés
3
Date d'inscription
vendredi 21 décembre 2007
Statut
Membre
Dernière intervention
25 décembre 2007
-
Messages postés
3
Date d'inscription
vendredi 21 décembre 2007
Statut
Membre
Dernière intervention
25 décembre 2007
-
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.

2 réponses

Messages postés
4088
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
852
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.
Messages postés
3
Date d'inscription
vendredi 21 décembre 2007
Statut
Membre
Dernière intervention
25 décembre 2007

Merci beaucoup en effet je me sus appercu que j'avais oublié cette commande, merci encore !