更改文本文件内容的事件

时间:2013-08-29 09:54:00

标签: java file

我的java程序需要知道文本文件内容是否发生了变化。目前我正在使用File.lastModified()方法来完成它,但理想情况下我不想执行检查。相反,我希望每次修改文件时都会触发一个事件。是否有任何第三方库可用于此类事情?我听说可以使用apache file descriptors完成,但无法找到有关它的任何信息。

4 个答案:

答案 0 :(得分:2)

您可以使用新的Java 7 WatchService来完成此操作。这使您可以观看目录并收到有关创建,修改和删除事件的通知。

答案 1 :(得分:2)

有许多因素可能决定您的解决方案。文件更新的频率,信息的类型等等......

我的建议是Java 7标准,或Apache事实上的标准(如果要求不允许Java 7解决方案)......


Apache配置

  

如果它是一种属性信息,配置,那么您可能希望查看Apache commons配置。每次更新文件时都会提供刷新方法,重新加载配置等等。http://commons.apache.org/proper/commons-configuration/userguide/howto_events.html#An_example


Java 7,WatchService

  

如果您使用Java 7,请查看WatchService,链接http://docs.oracle.com/javase/7/docs/api/java/nio/file/WatchService.html


Apache IO

  

如果您不想使用Java 7,并且该文件不是配置(最好以这种方式使用commons配置),那么您可能希望从Apache io查看FileAlterationObserver。 http://commons.apache.org/proper/commons-io/

答案 2 :(得分:1)

尝试Apache的DefaultFileMonitor

您需要做的就是将有问题的文件添加到需要监控的文件列表中并启动监控线程。

如果文件已被更改或删除,则应触发OnChange事件。

答案 3 :(得分:0)

Google表示您可以使用JNotifyinotify-java

等库