如果文件已重命名,如何跟踪?

时间:2014-02-26 09:25:35

标签: java file-io event-handling


我正在使用BufferedReader实时读取日志文件。这非常好用。但是每天都有一个Log-rotate,这意味着我的日志文件将被重命名,不再发生变化。将在同一位置创建新的日志文件。在我可以更改为新的日志文件之前,我需要读完当前的日志文件,这对使用BufferedReader没有问题,但我怎么能发现文件名已经改变了呢?

我尝试调用file.getPath()file.getAbsolutePath(),但这不起作用,因为File - 对象路径在创建后是固定的。

我也尝试使用WatchService,但是附加到该文件也会导致ENTRY_DELETE。由此产生的用于检查它是否是重命名的overead只是为了很多。

有人知道如何判断日志文件是否已重命名?

1 个答案:

答案 0 :(得分:2)

您可以尝试JNotify。虽然不知道所需的资源,但这项工作是否有效。