Afficher dans un fichier .txt

Résolu/Fermé
ucra Messages postés 8 Date d'inscription dimanche 20 décembre 2015 Statut Membre Dernière intervention 29 janvier 2016 - Modifié par KX le 20/12/2015 à 12:55
ucra Messages postés 8 Date d'inscription dimanche 20 décembre 2015 Statut Membre Dernière intervention 29 janvier 2016 - 22 déc. 2015 à 00:00
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 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
20 déc. 2015 à 13:03
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 dimanche 20 décembre 2015 Statut Membre Dernière intervention 29 janvier 2016
21 déc. 2015 à 00:24
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 dimanche 20 décembre 2015 Statut Membre Dernière intervention 29 janvier 2016
21 déc. 2015 à 11:59
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 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
21 déc. 2015 à 21:52
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 dimanche 20 décembre 2015 Statut Membre Dernière intervention 29 janvier 2016
22 déc. 2015 à 00:00
Oui ca marche, mercii
0