我正在使用 BufferedReader
持续实时读取日志文件。这效果非常好。但是每天都会有一个Log-rotate,这意味着我的Logfile将被重命名并且不再改变。将在同一位置创建一个新的日志文件。在更改为新日志文件之前,我需要读完当前日志文件,使用 BufferedReader 没有问题,但如何发现文件名已更改?
我尝试调用 file.getPath()
和 file.getAbsolutePath()
,但这不起作用,因为 File
-对象路径在创建后固定。
我还尝试使用 WatchService
,但附加到文件也会导致 ENTRY_DELETE
。检查它是否是重命名所产生的开销太大了。
有人知道如何判断日志文件是否已重命名吗?
最佳答案
您可以尝试JNotify 。完成这项工作,但不知道它需要多少资源。
关于java - 如果文件已重命名,如何跟踪?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22036962/