Voici l'extrait de code.pourquoi bufferedwriter n'écrit pas dans le fichier?
read = new FileReader("trainfiles/"+filenames[i]);
br = new BufferedReader(read);
while((lines = br.readLine())!=null){
st = new StringTokenizer(lines);
while(st.hasMoreTokens()){
bw = new BufferedWriter(new FileWriter("files/file.txt"));
bw.write(st.nextToken());
bw.newLine();
}
}
Edit: Je lis des fichiers d'un répertoire. Donc, j'ai besoin d'ouvrir le lecteur dans chaque boucle. J'ai apporté quelques modifications, mais aussi il n'écrit pas dans ce fichier. Voici le code:
for(i=0;i==0;i++){
if(filenames[i].matches(".*ham.*")){
System.out.println("ham:"+filenames[i]);
read = new FileReader("trainfiles/"+filenames[i]);
br = new BufferedReader(read);
while((lines = br.readLine())!=null){
st = new StringTokenizer(lines);
while(st.hasMoreTokens()){
System.out.println(st.nextToken());
bw.write(st.nextToken());
}
}
bw.close();
br.close();
}else{
System.out.println("spam:"+filenames[i]);
}
}
modifier: J'ai modifié le code, mais sans succès,
while((lines = br.readLine())!=null){
st = new StringTokenizer(lines);
bw = new BufferedWriter(new FileWriter("files/file.txt"));
while(st.hasMoreTokens()){
System.out.println(st.nextToken());
bw.write(st.nextToken());
}
bw.close();
}
br.close();
Et je reçois cette erreur: Exception in thread "main" java.util.NoSuchElementException at java.util.StringTokenizer.nextToken(StringTokenizer.java:332) at Test.main(Test.java:30)
modifier: Merci les gars. Je l'ai compris. En fait, j'ai créé un répertoire dans eclipse et je ne l'ai pas actualisé pour voir le contenu. Son idiot ... anyways.thanks beaucoup
Y at-il un message d'erreur? Un fichier est-il créé? Appelez-vous close()? – jzd
Pourquoi instanciez-vous un nouveau BufferedWriter pour chaque écriture? De plus, vous devriez toujours fermer tous les flux ouverts (après le travail, ofc :-)). – helpermethod
Après votre dernière modification, vous créez toujours le BufferedWritter dans la boucle. Cela va tronquer votre fichier – Tiago