我使用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