如何判断文件是否已重命名?

时间:2011-04-22 09:01:08

标签: java

我有一个程序监视日志文件的更改。该程序使用FileInputStream来继续读取文件。同时,日志文件可能会被轮换:重命名旧日志文件,并将新日志条目写入新文件。

我的程序如何确定文件是否已重命名,以便切换到读取新的日志文件?

3 个答案:

答案 0 :(得分:5)

根据this question, JNotify sseems是您问题的完美解决方案:

  

JNotify是一个java库,允许java应用程序监听文件系统事件,例如:

     

创建了文件

     

文件已修改

     

重命名文件

     

文件已删除

答案 1 :(得分:0)

也许您可以watch文件系统并根据您的需要进行更改。

答案 2 :(得分:0)

我能想到的最简单的方法就是每5秒轮询一次文件大小或类似的东西。

如果您正在读取的文件已重命名并且创建了新文件,则您的轮询将显示大小突然减小。然后,您可以相应地重新创建FileinputStream。