在动态更新时,在java中以递增方式访问文件?

时间:2012-08-03 21:09:36

标签: java file-io random-access

我希望在文件被其他进程修改/写入时在java中逐步读取文件。因此假设进程“A”正在写入/记录文件“X”而另一个进程“B”想要逐步读取文件“X”,比如说每1秒(或甚至连续地)以找到特定模式。在java中执行此操作的最佳方法是什么?我知道我可以使用RandomAccessFile的'seek'方法,但会干扰文件的写入吗?有更好的方法吗?

2 个答案:

答案 0 :(得分:0)

轮询修改过的文件数据。打开它进行阅读可以防止其他程序同时写入文件。

答案 1 :(得分:0)

如果您能够使用Java 7,则可以利用WatchService ...但它无法解析必须解析整个文件。

我唯一能想到的就是保持某种“标记”,表明你最后的位置。下次你来阅读文件时,你可以跳到这一点并从那里读取(完成后更新标记)