需要建议我的方法:读取正在连续写入的文件?

tur*_*rbo 5 java io file

我有一个csv文件,它是由脚本连续编写的.它每行写入时间戳和一些其他数据.我必须先阅读最新数据.目前我在java中使用RandomAccessFile以反向方式读取文件.但随着它的不断写入,我必须优先阅读新数据.我正在维护已发送的时间戳并正在进行工作.这导致不必要的扫描操作.

有没有更好的方法来处理这种情况?

提前致谢,

Cam*_*ner 1

您可以考虑让一个线程在新行出现时读取它们并将其推送到一堆未处理的行上,另一个线程弹出堆栈并以相反的顺序处理新行。

根据处理新行所需的时间与生成新行的速度相比,这可能就足够了。如果新行的生成速度比您处理它们的速度快,那么这种方法可能不起作用 - 堆栈将变得太大,并且您将耗尽内存。在这种情况下,根据您的要求,您可能能够使用丢弃旧条目的大小有限的堆栈。