Ecrire le output dans un fichier.txt
Résolu
sch16
Messages postés
2
Statut
Membre
-
sch16 Messages postés 2 Statut Membre -
sch16 Messages postés 2 Statut Membre -
Bonjour
voici mon code java , le résultat est la dans la console mais j arrive pas a l enregistrer dans mon fichier output.txt, quoique j ai mi la boucle et j ai fermé le fichier
PS: c est un code de racinisation ,le résultat est un ensemble de mot ,chaque mot dans une ligne
MERCI infiniment pour votre aide
voici mon code java , le résultat est la dans la console mais j arrive pas a l enregistrer dans mon fichier output.txt, quoique j ai mi la boucle et j ai fermé le fichier
PS: c est un code de racinisation ,le résultat est un ensemble de mot ,chaque mot dans une ligne
MERCI infiniment pour votre aide
try {
String sCurrentLine;
br = new BufferedReader(new FileReader("input.txt"));
SnowballStemmer stemmer = (SnowballStemmer) new frenchStemmer();
PrintWriter out = new PrintWriter (new FileWriter ("output.txt")) ;
while ((sCurrentLine = br.readLine()) != null) {
String[] tokens = sCurrentLine.split(" ");
for (String string : tokens) {
stemmer.setCurrent(string);
stemmer.stem();
String stemmed = stemmer.getCurrent();
System.out.println(stemmed);
// out.print(stemmed);
while ( true) {
String line = br.readLine();
if(line == null)
break;
for(String str : line.split("\\s+"))
out.println(str);
}
out.print(stemmed);
out.close();
}
1 réponse
-
Bonjour,
Tu fermes ton fichier trop tôt.
Qu'est-ce que tu as voulu faire avec tonwhile (true)
?
Avec le seul testif(line == null)
cette boucle va lire tout le reste de ton fichier, dès le premier token de ta boucle for...
De plus, leout.close
devrait être après la bouclewhile ((sCurrentLine
mais tu l'as mis à l'intérieur de la bouclefor (String string
...
Remarque : je t'invite à utiliser la classe Scanner pour manipuler des fichiers texte, c'est plus pratique qu'une imbrication de FileReader/BufferedReader.
try (Scanner in = new Scanner(new File("input.txt")); PrintWriter out = new PrintWriter("output.txt")) { SnowballStemmer stemmer = new FrenchStemmer(); while (in.hasNextLine()) { for (String string : in.nextLine().split("\\s+")) { stemmer.setCurrent(string); stemmer.stem(); String stemmed = stemmer.getCurrent(); System.out.println(stemmed); out.println(stemmed); } } } catch (RuntimeException | FileNotFoundException e) { e.printStackTrace(); }
NB. J'ai utilisé le try-with-resources ce qui évite d'avoir à gérer les close.