0
如何将下面的观察者转换为不断运行?即使在检测到更改后,我也希望它继续监听文件。一个线程也许?观察者在变更后停止
import java.io.IOException;
import java.nio.file.*;
import java.util.List;
public class Listener {
public static void main(String[] args) {
Path myDir = Paths.get("C:/file_dir/listen_to_this");
try {
WatchService watcher = myDir.getFileSystem().newWatchService();
myDir.register(watcher, StandardWatchEventKinds.ENTRY_CREATE, StandardWatchEventKinds.ENTRY_DELETE, StandardWatchEventKinds.ENTRY_MODIFY);
WatchKey watckKey = watcher.take();
List<WatchEvent<?>> events = watckKey.pollEvents();
for (WatchEvent event : events) {
if (event.kind() == StandardWatchEventKinds.ENTRY_CREATE) {
System.out.println("Created: " + event.context().toString());
}
if (event.kind() == StandardWatchEventKinds.ENTRY_DELETE) {
System.out.println("Delete: " + event.context().toString());
}
if (event.kind() == StandardWatchEventKinds.ENTRY_MODIFY) {
System.out.println("Modify: " + event.context().toString());
}
}
} catch (IOException | InterruptedException e) {
System.out.println("Error: " + e.toString());
}
}
}