Java Nio2监视服务
我正在学习nio2中的文件监视程序,一个示例文件有一个映射变量,它们将文件映射到监视键,并有以下代码:Java Nio2监视服务,java,nio2,Java,Nio2,我正在学习nio2中的文件监视程序,一个示例文件有一个映射变量,它们将文件映射到监视键,并有以下代码: for (;;) { // wait for key to be signaled WatchKey key; try { key = watcher.take(); } catch (Interrupt
for (;;) {
// wait for key to be signaled
WatchKey key;
try {
key = watcher.take();
} catch (InterruptedException x) {
return;
}
Path dir = keys.get(key);
if (dir == null) {
System.err.println("WatchKey not recognized!!");
continue;
}
(...)
}
根据这个例子,我相信watch服务偶尔会给我一个假阳性的密钥,该密钥没有映射到应用程序正在监视的文件,但是在实际情况下,他们不会进行这样的检查。我现在不确定我是否真的需要这本字典。任何有nio2经验的人都能对此有所了解吗?我真诚地认为,这是确保您仍在处理此监视键/路径映射的事件的最简单方法 如果队列中的同一文件有两个事件。 在处理事件1时,您决定停止处理此路径的事件 在从WatchService中检索下一个键(与事件1相同的路径)之后,您可以立即忽略它并继续