我正在编写一个应用程序,其中我使用WatchService(http://docs.oracle.com/javase/7/docs/api/java/nio/file/WatchService.html)从外部程序监视日志文件。 每当在文件上触发EVENT_MODIFIED时,我会读取它并检查是否存在某个字符串。 当我手动输入文本并保存文件时,我的程序运行正常,但是当外部程序编辑日志文件时,不会触发WatchService。
我尝试了一种不同的方法,我使用一个线程来读取文件并睡眠一段时间,然后重复。这样做可以解决问题,但是当我应该可以“监听”这些更改时,我宁愿每隔X秒轮询一次该文件。
有谁知道为什么WatchServices没有检测到这些修改?