用Java创建侦听器

用Java创建侦听器,java,spring,concurrency,listener,Java,Spring,Concurrency,Listener,我想在Java/Spring中创建一个始终侦听目录的程序。如果在此目录中创建了一个名为“example.txt”的特定文件,那么程序将读取该文件并执行一些操作,然后继续侦听。如果未创建此txt文件,则不会发生任何事情,它将继续侦听 你知道如何创建这个侦听器部分吗 非常感谢您的帮助您可以使用Java 7中添加的WatchService WatchService watchService = FileSystems.getDefault().newWatchService(); Path path

我想在Java/Spring中创建一个始终侦听目录的程序。如果在此目录中创建了一个名为“example.txt”的特定文件,那么程序将读取该文件并执行一些操作,然后继续侦听。如果未创建此txt文件,则不会发生任何事情,它将继续侦听

你知道如何创建这个侦听器部分吗


非常感谢您的帮助

您可以使用Java 7中添加的WatchService

WatchService watchService = FileSystems.getDefault().newWatchService();
Path path = Paths.get("example.txt");
WatchKey watchKey = path.register(watchService, StandardWatchEventKinds...);

更多信息和

我不知道Spring和Java的这种功能。您可以读取目录内容,但无法向应用程序触发系统级发生的事件。您可以使用计划程序定期检查目录内容的状态(文件及其修改日期),并与以前的状态(存储在数据库中)进行比较。我看没有别的办法了。@Nikolas我自己也没有用过,但是有
java.nio.file.WatchService
。嗨,它是怎么工作的?它是否在等待更改时停止执行,当我们进行更改时,它是否继续执行,或者如何继续执行?感谢有多种方法可以做到这一点,要么定期轮询,要么调用阻塞方法等待事件,这里有很好的解释:问题是我无法更新java版本,我正在使用较低的版本,因此如果我使用WatchService类,我会出错。在WatchService中是否有其他方法可以监视目录?非常感谢你,你的问题被标记为重复,如果你看前面的问题,你会发现一些建议