Afficher dans un fichier .txt

[Résolu/Fermé]
Signaler
Messages postés
8
Date d'inscription
dimanche 20 décembre 2015
Statut
Membre
Dernière intervention
29 janvier 2016
-
Messages postés
8
Date d'inscription
dimanche 20 décembre 2015
Statut
Membre
Dernière intervention
29 janvier 2016
-
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

2 réponses

Messages postés
16398
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
19 septembre 2021
2 877
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 42674 internautes nous ont dit merci ce mois-ci

Messages postés
8
Date d'inscription
dimanche 20 décembre 2015
Statut
Membre
Dernière intervention
29 janvier 2016

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
Messages postés
8
Date d'inscription
dimanche 20 décembre 2015
Statut
Membre
Dernière intervention
29 janvier 2016

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...
Messages postés
16398
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
19 septembre 2021
2 877
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();
Messages postés
8
Date d'inscription
dimanche 20 décembre 2015
Statut
Membre
Dernière intervention
29 janvier 2016

Oui ca marche, mercii