每次刷新后以Java写入文件时查看文件的大小和内容(新添加的字符串)

时间:2018-12-14 23:06:38

标签: java printwriter bufferedwriter writer

我曾经用PrintWriter用Java写入文本文件,该过程需要时间,bcz有一个迭代过程,在每次迭代结束时,如果我等到该过程结束后,我可以打开并查看文件的内容而没有问题,但是如何查看文件仍在写入时的更新过程,例如我在文件夹内刷新,然后看到每次刷新单击时尺寸会越来越大?

2 个答案:

答案 0 :(得分:2)

您看不到将东西写入文件的进度,因为它实际上可能不是。

首先:Java Streams通常会优化对硬盘驱动器的访问,因为访问速度很慢,因此尽可能少地访问它。要强制Java执行其认为要写入磁盘的操作,请在附加内容后调用PrintWriter.flush()

第二个:即使那样也可能无法解决问题,因为大多数操作系统都执行相同的优化并获得相同的结果,并且您不能简单地强迫操作系统进入flush()

如前所述,您可以做的最好的事情就是Printwriter.flush()

答案 1 :(得分:0)

正如@Elliott提到的,您应该在每次追加之后执行pw.flush(),以立即查看大小变化。