Java 如何使用WatchService监视多个目录?

Java 如何使用WatchService监视多个目录?,java,nio,watchservice,Java,Nio,Watchservice,我不明白,你怎么知道 watcher.take(); 您知道要报告哪个目录吗?它是否报告它所注册的每个目录 dir.register(watcher... 如果我有多个观察者,他们会只报告那些针对他们注册的目录吗 收益价值的目的是什么?这里的描述中似乎从未使用过它:您使用一个路径到一个监视服务的路径所定位的文件 如果发生事件,它将在WatchService中排队,您可以使用检索它take()不知道实际的路径 是的,WatchService将只报告向其注册的Paths的事件 您可以使用regi

我不明白,你怎么知道

watcher.take();
您知道要报告哪个目录吗?它是否报告它所注册的每个目录

dir.register(watcher...
如果我有多个观察者,他们会只报告那些针对他们注册的目录吗


收益价值的目的是什么?这里的描述中似乎从未使用过它:

您使用一个
路径
到一个
监视服务
路径所定位的文件

如果发生事件,它将在
WatchService
中排队,您可以使用检索它
take()
不知道实际的
路径

是的,
WatchService
将只报告向其注册的
Path
s的事件


您可以使用
register
方法返回的
WatchKey
take()
返回的
WatchKey
进行比较。显然,您还可以执行所有操作

比较register返回的watchkey和take返回的watchkey有什么意义?@SuzanCioc这是一个标识符。您可以直接比较它,而不是从
WatchKey
获取
Watchable
,比如您对其中一个注册的
Watchable
有一些特殊行为。我不明白。在某些情况下,手表按键是否相等?在哪种情况下?@SuzanCioc当您注册一个
路径时,您会得到一个
监视键。如果相同的
路径发生监视的事件,则
take()
将返回相同的
WatchKey
实例。