1. 程式人生 > >java輸入輸出(17)監控檔案變化

java輸入輸出(17)監控檔案變化

  1. 可以通過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盤,建立一個資料夾,再刪除它,就可以在控制檯看到對應的資訊