91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java中怎么實時監控文件目錄

發布時間:2021-07-15 13:57:32 來源:億速云 閱讀:489 作者:Leah 欄目:編程語言

Java中怎么實時監控文件目錄,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

一、代碼實現1、簡單案例

這個代碼很簡單,只需要四步:

public static void main(String[] args) throws Exception {    //第一步:取得WatchService    WatchService watchService = FileSystems.getDefault().newWatchService();    //第二步:確定要監控的路徑    Path path = Paths.get("G:\\");    //第三步:為本路徑綁定WatchService,并確定監控的事件    path.register(        watchService,        StandardWatchEventKinds.ENTRY_CREATE,        StandardWatchEventKinds.ENTRY_DELETE,        StandardWatchEventKinds.ENTRY_MODIFY);    WatchKey key;    //第四步:當有事件時,開始觸發    while ((key = watchService.take()) != null) {        for (WatchEvent<?> event : key.pollEvents()) {           System.out.println("事件" + event.kind() + "發生了,文件是:" + event.context());        }        key.reset();    } }

這里我們監控G盤,然后我們在G盤新建文件,然后刪除修改,就會在后臺打印相關信息。

Java中怎么實時監控文件目錄

現在就可以監控了,很簡單。

2、代碼分析

第一步和第二步,新建一個取得WatchService和取得要監控的路徑,這個很容易理解。

第三步綁定,這里只需要注意兩件重要的事情:首先,path將watchService作為第一個參數,然后是StandardWatchEventKinds的變量參數。一共有四種。

  • StandardWatchEventKinds.ENTRY_CREATE&mdash;當有新文件時觸發。可能是創建了一個新文件。

  • StandardWatchEventKinds.ENTRY_MODIFY&mdash;當文件被修改時觸發。所有的文件編輯都會觸發這個事件。在一些平臺上,甚至改變文件屬性也會觸發它。

  • StandardWatchEventKinds.ENTRY_DELETE&mdash;當文件被刪除、移動或重命名時觸發。

  • StandardWatchEventKinds.OVERFLOW&mdash;觸發表示丟失或丟棄的事件。

第四步不斷監控,當watchService里面不為空時,開始獲取相應的事件,并poll彈出。最后還有一個reset  表示回退到相應的句柄,繼續處理下一次事件。

3、源碼分析

由于watchService是一個接口,所以分析起來也比較簡單。里面一共包含了三個方法

//方法1:關閉watchService @Override void close() throws IOException; //方法2:彈出事件 WatchKey poll(); //方法3:帶有參數的彈出 WatchKey poll(long timeout, TimeUnit unit)         throws InterruptedException; //方法4:獲取事件。 WatchKey take() throws InterruptedException;

由于方法比較簡單,所以我們可以直接看方法上的注釋就可以了。

結論

WatchService接口是在java7的版本中引入的。主要是處理NIO的文件相關問題。但是WatchService其實是有很多缺點的。

WatchService是采用掃描式的,效率低。

WatchService代碼寫起來費勁。雖然上面看起來很簡潔了,但是實際開發時麻煩。

WatchService不能監聽到多級目錄,事先父文件夾需要存在。

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

深水埗区| 永善县| 南华县| 资兴市| 元阳县| 礼泉县| 射洪县| 通化市| 册亨县| 定南县| 陕西省| 萝北县| 镇安县| 原平市| 陆河县| 镇巴县| 阿克陶县| 阿荣旗| 扎赉特旗| 涡阳县| 泗洪县| 宁陵县| 定南县| 县级市| 甘肃省| 资中县| 蓝山县| 高密市| 牡丹江市| 科技| 昌黎县| 天柱县| 秦皇岛市| 双江| 泗阳县| 柳州市| 井陉县| 麻城市| 麦盖提县| 云和县| 临澧县|