我有一个程序监视日志文件的变化。该程序使用FileInputStream来继续读取文件。同时,日志文件可能会被旋转:旧的日志文件被重命名并且新的日志条目被写入到一个新文件中。如何判断文件是否被重命名?
我的程序如何确定文件被重命名,以便它切换到新的日志文件?
我有一个程序监视日志文件的变化。该程序使用FileInputStream来继续读取文件。同时,日志文件可能会被旋转:旧的日志文件被重命名并且新的日志条目被写入到一个新文件中。如何判断文件是否被重命名?
我的程序如何确定文件被重命名,以便它切换到新的日志文件?
根据this question,JNotify sseems是你的问题的完美解决方案:
JNotify是一个Java库,允许Java应用程序侦听文件系统事件,如:
文件创建
文件修改
文件改名
文件已删除
除非您正在监视文件系统中的更改事件,否则实际上不能。你正在开发什么文件系统/平台? – 2011-04-22 09:04:41
将重命名成功,如果文件打开并积极读取? – Bozho 2011-04-22 09:06:56
可能的重复[是否有一个复杂的文件系统监视器的Java是免费的或开源的?](http://stackoverflow.com/questions/1096404/is-there-a-sophisticated-file-system-monitor-for -java-which-free-or-open-s) – krock 2011-04-22 09:22:49