- 可以通过WatchSercice对象来注册监听系统文件的变化,具体的讲解穿插在代码中
import java.nio.file.*; public class WatchServiceTest { public static void main(String args[]) throws Exception{ WatchService watchService = FileSystems.getDefault().newWatchService(); // 获取WatchService对象 // 为c盘路径注册监听 Paths.get("c:/").register(watchService, StandardWatchEventKinds.ENTRY_CREATE, StandardWatchEventKinds.ENTRY_DELETE, StandardWatchEventKinds.ENTRY_DELETE ); // 设置一个永真循环,这样在c盘文件发生操作的时候就会在控制台输出相应的信息 while (true){ WatchKey watchKey = watchService.take(); // 获取WatchKey对象,可以获取下一个变化事件 for(WatchEvent<?> event : watchKey.pollEvents()){ System.out.println(event.context() + "文件发生了" + event.kind() + "事件"); } boolean valid = watchKey.reset(); // 如果重设失败,就退出监听 if(!valid){ break; } } } } //运行这个程序之后,打开c盘,创建一个文件夹,再删除它,就可以在控制台看到对应的信息
这是我看李刚编著的《疯狂Java讲义》后总结出来的。
java输入输出(17)监控文件变化
最新推荐文章于 2024-07-03 02:49:57 发布