java輸入輸出(17)監控檔案變化
阿新 • • 發佈:2018-12-09
- 可以通過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盤,建立一個資料夾,再刪除它,就可以在控制檯看到對應的資訊