Afficher dans un fichier .txt

Résolu
ucra Messages postés 9 Statut Membre -  
ucra Messages postés 9 Statut Membre -
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

  1. KX Messages postés 19031 Statut Modérateur 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
    1. ucra Messages postés 9 Statut Membre
       
      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
  2. ucra Messages postés 9 Statut Membre
     
    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
    1. KX Messages postés 19031 Statut Modérateur 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
    2. ucra Messages postés 9 Statut Membre
       
      Oui ca marche, mercii
      0