我的 java 程序需要知道文本文件内容是否更改。目前我正在使用File.lastModified()
方法来做到这一点,但理想情况下我不想执行检查。相反,我希望每次修改文件时触发一个事件。是否有任何第三方库可用于此类事情?我听说可以使用它来完成,apache file descriptors
但找不到任何有关它的信息。
4 回答
您可以使用新的Java 7 WatchService完成此操作。这使您能够查看目录并收到有关创建、修改和删除事件的通知。
有许多因素可能会决定您的解决方案。文件更新的频率、信息的类型等...
我的建议是 Java 7 标准或 Apache 事实标准(如果要求不允许 Java 7 解决方案)...
阿帕奇配置
如果它是一种属性信息、配置的文件,那么您可能需要查看 Apache commons 配置。每次更新文件时都会提供一种刷新方法,以重新加载您的配置等。http://commons.apache.org/proper/commons-configuration/userguide/howto_events.html#An_example
Java 7,监视服务
如果您使用 Java 7,请查看 WatchService,链接http://docs.oracle.com/javase/7/docs/api/java/nio/file/WatchService.html
阿帕奇 IO
如果您不想使用 Java 7,并且该文件不是配置(最好使用 commons 配置),那么您可能需要查看来自 Apache io 的 FileAlterationObserver。http://commons.apache.org/proper/commons-io/
谷歌说你可以使用JNotify和inotify-java之类的库