我以连续 2 分钟的计划在 Linux 机器上读取 Java 中的日志文件,以查找某些消息。我存储最后一个偏移量(RandomAccessFile getFilePointer),并在检测到LastModified已更改时从中读取;这是最佳实践还是正确的做法?
如果您使用的是 Java 7,则可以使用 WatchService 在目录中的文件发生更改时通知您。这类似于中断,不需要连续轮询。有关监视服务的更多详细信息,请参阅此处。否则,您最好使用已经使用的轮询方法。
试试这个泰勒:http://commons.apache.org/io/apidocs/org/apache/commons/io/input/Tailer.html
这是"tail -f"Unix功能的Java实现。
要检测文件更改或目录中任何内容的更改,您可以监视该目录中的新内容、现有内容的修改以及删除任何目录中的任何现有内容。
见帖子:目录监视Java中的更改