我有一个程序只能通过按Ctrl + C
来终止。在这个程序中,我使用:
File logFile = new File("output.txt");
PrintWriter log_file_writer = new PrintWriter(logFile);
log_file_writer.println("TEXT");
但是因为我不知道程序何时终止,我无法使用以下方法关闭文件:
log_file_writer.close();
我认为这导致输出文件中没有文字出现。
有人会有解决方案吗?
感谢您的帮助。
答案 0 :(得分:2)
log_file_writer.flush();
将内容推送到磁盘
答案 1 :(得分:1)
作为javadoc says:
PrintWriter(File file)
使用指定的文件创建一个没有自动行刷新的新PrintWriter。
因此,您需要刷新要打印的实际缓冲的数据:
log_file_writer.flush();
答案 2 :(得分:0)
您没有刷新内容,我总是使用autoFlush
参数,但File
无效:
PrintWriter log_file_writer = new PrintWriter(new FileOutputStream("output.txt"),true);
但您也可以在每次写作后使用log_file_writer.flush();
。