我正在Linux盒子上读取Java日志文件,持续2分钟,查找某些消息。我存储了最后一个偏移量(RandomAccessFile getFilePointer),当我检测到LastModified已经改变时,从它开始读取;这是最好的做法,甚至是对吗?
答案 0 :(得分:4)
如果您使用的是Java 7,则可以使用WatchService在目录内的文件发生更改时通知您。这与中断类似,不需要连续轮询。有关WatchService的更多详细信息,请参阅this。否则你最好使用你已经完成的轮询方法。
答案 1 :(得分:2)
试试这个Tailer: http://commons.apache.org/io/apidocs/org/apache/commons/io/input/Tailer.html
这是“tail -f”Unix功能的Java实现。
答案 2 :(得分:1)
为了检测文件的更改或目录中任何内容的更改,您可以在该目录中查看新内容,修改现有内容以及删除任何目录中的任何现有内容。