Mon*_*ter 5 java file bufferedreader
我正在使用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();
}
Run Code Online (Sandbox Code Playgroud)
但是,由于一些奇怪的原因,这个过程在我的输入文件的最末端过早地结束(实际打印出一半的一行).这有什么明显的原因吗?while循环显然以null结尾.它是我的250k +行txt文件的末尾.谢谢!
你在哪里刷新/关闭你的PrintWriter或FileOutputStream?如果程序退出且未完成,则不会写出所有结果.
在进程结束时,您需要out.close() (可能还有一个p.flush()?)来关闭文件输出流