我使用BufferedReader和PrintWriter遍歷輸入文件的每一行,對某些行進行更改並輸出結果。如果一行不經過更改,它只是按原樣輸出到輸出文件。但是由於某種原因,這個過程過早地結束了。該代碼看起來是這樣的:對我的輸入文件的末尾BufferedReader/PrintWriter的問題?
BufferedReader in = new BufferedReader(new FileReader("in.txt"));
FileOutputStream out = new FileOutputStream("out.txt");
PrintWriter p = new PrintWriter(out);
String line = in.readLine();
while(line!=null)
{
if(line is special)
do edits and p.println(edited_line);
else
p.println(line);
line = in.readLine();
}
但是,對於一些奇怪的原因,這個過程過早結束(實際打印出一條線的一半)。這有什麼明顯的原因? while循環顯然是由null結束的。這是我的250k +行txt文件的結尾。謝謝!
你真的確認沒有異常被拋出?如果拋出異常*,你會怎麼做?會記錄嗎? – 2009-06-16 15:03:13
喬恩 - 別忘了PrintWriter壓扁異常 - 您必須使用「checkError」方法來查看是否發生了異常。 – MetroidFan2002 2009-06-16 15:04:25