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

Java 如果文件已重命名,如何跟踪?,java,file-io,event-handling,Java,File Io,Event Handling,我正在使用BufferedReader持续实时读取日志文件。这个效果很好。但每天都有一个日志循环,这意味着我的日志文件将被重命名,不再更改。将在同一位置创建新的日志文件。在切换到新的日志文件之前,我需要完成当前日志文件的读取,使用BufferedReader没有问题,但是如何识别文件名已更改 我尝试调用文件.getPath()和文件.getAbsolutePath(),但这不起作用,因为文件-objects路径在创建后是固定的 我还尝试使用WatchService,但是附加到文件中也会导致条目\


我正在使用
BufferedReader
持续实时读取日志文件。这个效果很好。但每天都有一个日志循环,这意味着我的日志文件将被重命名,不再更改。将在同一位置创建新的日志文件。在切换到新的日志文件之前,我需要完成当前日志文件的读取,使用
BufferedReader
没有问题,但是如何识别文件名已更改

我尝试调用
文件.getPath()
文件.getAbsolutePath()
,但这不起作用,因为
文件
-objects路径在创建后是固定的

我还尝试使用
WatchService
,但是附加到文件中也会导致
条目\u DELETE
。检查它是否是一个重命名的结果是过度的


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

您可以试试。做这项工作,但不知道需要多少资源。

我刚才回答了-希望能有帮助。我找到了答案并尝试了,但是,正如我所提到的,检测重命名而不是追加的开销非常大。抱歉,我看不出这是“太大的开销”的原因一点也不。只是需要很长时间才能完成。事实上,这正是我想要的,不幸的是,它不适用于较旧的操作系统。