這裏是代碼片段。爲什麼bufferedwriter不在文件中寫入?
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();
}
}
編輯: 我正在從目錄讀取文件。所以,我需要在每個循環中打開讀者。我做了一些修改,但也沒有寫入該文件。 下面是代碼:
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]);
}
}
編輯: 我修改了代碼,但沒有成功,
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();
,我得到這個錯誤:Exception in thread "main" java.util.NoSuchElementException at java.util.StringTokenizer.nextToken(StringTokenizer.java:332) at Test.main(Test.java:30)
編輯: 感謝球員。 。 我想到了。其實我在eclipse中創建了一個目錄,我沒有刷新它來查看內容。它的傻...... anyways.thanks很多
是否有錯誤訊息?是否創建了一個文件?你打電話close()嗎? – jzd 2010-12-13 15:07:32
爲什麼你爲每一個寫你實例化一個新的BufferedWriter?此外,你應該總是關閉所有開放的流(工作完成後,ofc :-))。 – helpermethod 2010-12-13 15:08:31
在您上次編輯之後,您仍然在循環中創建BufferedWritter。這會截斷你的文件 – Tiago 2010-12-13 15:37:43