Java 新IO怎麼監控文件變化?

阿裏雲問答 2022-01-07 17:24:46 阅读数:825

java io 文件

Java 新IO怎麼監控文件變化?




采納答案1:

"在以前的Java版本中,如果程序需要監控文件的變化,則可以考慮啟動一條後臺線程,這條後臺線程每隔一段時間去“遍曆”一次指定目錄的文件,如果發現此次遍曆結果與上次遍曆結果不同,則認為文件發生了變化。但這種方式不僅十分煩瑣,而且性能也不好。NIO.2的Path類提供了如下一個方法來監聽文件系統的變化。 register(WatchService watcher,WatchEvent.Kind<?>...events):用watcher監聽該path代錶的目錄下的文件變化。events參數指定要監聽哪些類型的事件。 在這個方法中WatchService代錶一個文件系統監聽服務,它負責監聽path代錶的目錄下的文件變化。一旦使用register()方法完成注册之後,接下來就可調用WatchService的如下3個方法來獲取被監聽目錄的文件變化事件。 WatchKey poll():獲取下一個WatchKey,如果沒有WatchKey發生就立即返回null。 WatchKey poll(long timeout, TimeUnit unit):嘗試等待timeout時間去獲取下一個WatchKey。 Wa tchKey take():獲取下一個WatchKey,如果沒有WatchKey發生就一直等待。如果程序需要一直監控,則應該選擇使用take()方法; 如果程序只需要監控指定時間,則可考慮使用poll()方法。"


版权声明:本文为[阿裏雲問答]所创,转载请带上原文链接,感谢。 https://gsmany.com/2022/01/202201071724464863.html