我有一個函數可以創建包含數據行的7個不同的文本文件。然後,這些7個文件使用下列函數組合成在不同的功能的單個文件:爲什麼最後幾行缺少我創建的文本文件?
public void createSingle683File(int groupNumber, FileWriter wr){
try{
if(new File(printDir+"683_"+groupNumber+".txt").exists()){
File f683 = new File(printDir+"683_"+groupNumber+".txt");
BufferedReader input = new BufferedReader(new FileReader(f683));
String line = null;
while ((line = input.readLine()) != null){
//write contents of existing file to new file
wr.write(line+"\n");
}
//close bufferedInput
input.close();
}
}catch(Exception e){
e.printStackTrace();
}
}
調用代碼:
File fileHandle683 = new File(printDir+"683.txt");
FileWriter wr683 = new FileWriter(fileHandle683);
for (int groupNumber = 1; groupNumber < 8; groupNumber++){
createSingle683File(groupNumber,wr683);
}
.
.
.
.
.//stuff
wr683.close();
Alaways最終683.txt缺失從大約50行第7個文件(683_7.txt),我不明白爲什麼。它總是,並且只是最後文件的最後幾行缺失。我不能告訴我是否即將關閉bufferInput,或者什麼。
任何想法將不勝感激。我可以很快測試任何想法。
謝謝!
什麼是flush()做那close()不? – northpole 2011-05-05 17:14:34
它將所有數據寫入磁盤,但將寫入器打開以獲得更多輸出。如果你想繼續寫作,但也希望儘量減少丟失數據的機會,這很有用。 – 2011-05-05 17:17:35
是的,我逐步瞭解它正在被調用。我只是將flush()添加到7個文件中的每個文件的for循環中,並且修復了這個問題!謝謝! – northpole 2011-05-05 17:28:23