监听文件修改并识别java中新添加的行



我正在构建一个库(java8(,它需要监听几个文件的修改。每次修改时,库都需要解析相应文件中新添加的行。

这些文件类似于事件日志。因此,它们总是被附加(没有删除或覆盖(

我有两个问题:

  1. 有没有办法知道文件修改时新添加的行是什么?(java NIO中是否有识别这一点的功能?(

  2. 我在NIO包(Watch Service API(中看到了一些解决方案,它们可以用作基于轮询的机制来监听文件修改。是否有其他本机解决方案使其基于推送?这样我就不需要在不同的时间间隔之间进行轮询了。

我主要在寻找本机解决方案,但也很感激第三方解决方案的建议

感谢

您实现了"推";通过在其自己的线程中运行CCD_ 1循环。在每个take()上,您启动一个新线程来处理更改的行。

要确定更改的内容,请跟踪每次的文件长度。。。对于长度newSize - previousSize,改变的数据在偏移previousSize处。

您可能需要某种事件协调,以防止在上一个实例完成之前再次启动流程。如果在很短的时间内发生多个变化,这种情况可能会发生。

最新更新