WatchService類的使用


WatchService是java的NIO類新增加的監控文件變化的類。

WatchService是一個接口,利用Filesystems類獲取FileSystem,然后根據這個類,new一個WatchService。
具體用法如下
 public static void main(String[] args) throws Exception {
        //WatchService是一個接口,利用Filesystems類獲取FileSystem,然后根據這個類,new一個WatchService。
        WatchService watchService= FileSystems.getDefault().newWatchService();
        Paths.get("G:/").register(watchService,
                StandardWatchEventKinds.ENTRY_CREATE,
                StandardWatchEventKinds.ENTRY_DELETE,
                StandardWatchEventKinds.ENTRY_MODIFY);
        while (true){
            WatchKey key=watchService.take();
            for(WatchEvent<?>evet:key.pollEvents()){
                System.out.println(evet.context()+"文件發生了"+evet.kind()+"事件");
            }
            boolean vaild=key.reset();
            if(!vaild){
                break;
            }
        }
    }

  

 

 注意當重命名一個文件夾或者文件時,他會顯示先刪除再創建。

注意,例子中的take方法時阻塞的方法。

還有poll,如果獲取不到watchkey,立馬返回null,還有一個poll(long timeout,timeuint unit)設定一個等待時間。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM