因此,我有一个Java进程,需要每100毫秒不断向文件添加新行。我目前正在为此使用BufferedWriter,但据我所读,BufferedWriter对象在完成时应始终使用.close()方法。

如果这样做,我将不得不每隔几毫秒创建一个新的BufferedWriter对象,这是不理想的。创建一个静态BufferedWriter并在每次写入后仅对其进行.flush()处理,是否存在任何问题?

最后,如果您担心性能,是BufferedWriter最好的类吗?有没有可行的选择?

谢谢!

最佳答案

BufferedWriter完成后应将其关闭。如果您正在执行日志记录之类的操作,则可以将一个开放的写入器保留在负责日志记录的对象中,然后在运行结束时关闭它(或每当您移到新的日志文件时),这完全可以接受。

您不应该做的就是简单地打开编写器,然后丢弃引用而不关闭它。这可能会泄漏资源,并且在有缓冲的情况下,可能会丢失输出的最后一部分。

关于java - Java最佳实践-是否需要不断写入文件-BufferedWriter?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22278223/

10-09 12:49