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 -
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
mon resultat s affiche dans la console mais pas dans le fichier .txt
merci
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:
- Afficher dans un fichier .txt
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier rar - Guide
- Fichier .dat - Guide
2 réponses
Bonjour,
Pourquoi tu fais l'affichage sur la console de tous tes tokens ?
Quand après tu fais l'écriture dans le fichier, il n'y a plus aucun token !
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."
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."
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...
Quand je fais la boucle il ecrase tous les token et ne garde dans le fichier que le dernier mot du texte.
Help please...
Quand tu fais ça :
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 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();
je pense qu il y a un probleme avec le retour a la ligne
merci