Afficher dans un fichier .txt

Résolu
ucra Messages postés 8 Date d'inscription   Statut Membre Dernière intervention   -  
ucra Messages postés 8 Date d'inscription   Statut Membre Dernière intervention   -
bonjour, j essaye d afficher le resultat de mon code (fonction tokenizer) dans un fichier txt . je dois avoir chaque mot dans une ligne , voici le code


    String readString;
  
    try{
        BufferedReader br = new BufferedReader( new FileReader("C:/Users/PC/Desktop/yo.txt"));

        readString = br.readLine();
        System.out.println("\n" + readString);

        br.close();


        StringTokenizer stnz = new StringTokenizer(readString);

        System.out.println("\n[Split by spaces.]\n");
        while( stnz .hasMoreTokens()){
            System.out.println(stnz .nextToken());
        }

     
      
        PrintWriter out =  new PrintWriter (new FileWriter ("C:/Users/PC/Desktop/yoo.txt")) ;
        
            out.print(stnz.nextToken());
        
        out.close();
        
    }
    catch (IOException e){
        System.out.println("Catch error!");
    }       
  }

mon resultat s affiche dans la console mais pas dans le fichier .txt
merci
A voir également:

2 réponses

KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Bonjour,

Pourquoi tu fais l'affichage sur la console de tous tes tokens ?

while( stnz .hasMoreTokens()){
    System.out.println(stnz .nextToken());

Quand après tu fais l'écriture dans le fichier, il n'y a plus aucun token !
PrintWriter out =  new PrintWriter (new FileWriter ("C:/Users/PC/Desktop/yoo.txt")) ;
    out.print(stnz.nextToken());

Il faut choisir, soit tu fais l'affichage en console, soit tu l'écris dans le fichier, ou éventuellement les deux en même temps, mais pas l'un après l'autre...

Remarque : je t'invite à lire la documentation de StringTokenizer

"StringTokenizer is a legacy class that is retained for compatibility reasons although its use is discouraged in new code. It is recommended that anyone seeking this functionality use the split method of String or the java.util.regex package instead."
1
ucra Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
 
meme quand j essaye ca , dans le fichier je n ai que le premier mot
je pense qu il y a un probleme avec le retour a la ligne
merci
0
ucra Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
 
Au fait le probleme c que mon programme ne parcours que la premiere ligne du fichier txt (il fait pas retour a la liigne) et m affiche le resultat ( chaque mot dans une ligne) dans la console mais ne m affiche pas le resultat dans le fichier,
Quand je fais la boucle il ecrase tous les token et ne garde dans le fichier que le dernier mot du texte.

Help please...
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Quand tu fais ça :

BufferedReader br = new BufferedReader( new FileReader("C:/Users/PC/Desktop/yo.txt"));
readString = br.readLine();
System.out.println("\n" + readString);
br.close();

Il est normal que tu lises qu'une seule ligne, puisque après la première ligne tu fermes le fichier... il faut continuer si tu veux les lignes suivantes.

BufferedReader in = new BufferedReader(new FileReader("C:/test.txt"));
PrintWriter out = new PrintWriter(new FileWriter("C:/test2.txt"));

while (true) {
    String line = in.readLine();
    if (line == null)
        break;

    for (String str : line.split("\\s+"))
        out.println(str);
}

in.close();
out.close();
0
ucra Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
 
Oui ca marche, mercii
0