引入 Java 7WatchService
用于持续监控文件系统。是否有 Java 6 的反向移植?
是否有具有类似功能的纯 Java 库?
是的当然。Apache VFS 正是这样做的。您可以在http://commons.apache.org/vfs/下找到它。它是一个纯java库,可以监控文件,使用起来非常简单:
FileSystemManager manager = VFS.getManager();
FileObject file= manager.resolveFile("c:/MyFile.txt");
DefaultFileMonitor fm = new DefaultFileMonitor(new MyListener());
fm.setDelay(5000);
fm.addFile(file);
fm.start();
上面的代码将监控文件 c:/MyFile.txt。如果它发生变化,则调用对象 new MyListener()。
一个纯 Java 库是不可能的。如果你想避免轮询,你需要一个原生组件。
http://wiki.netbeans.org/NativeFileNotifications提供了一些关于可用的本机 API 和包装它们的各种 Java 库的信息。