標籤:
最近。在研究一些比較成熟的架構。他們還發現,他們中的一些相當不錯的文章。現在,對於一些在你們中間一個簡單的翻譯(版的英文文章,非常有協助)。
譯:原文連結
你有沒有發現,當你編輯一個檔案。同一時候使用還有一個IDE或編輯器進行編輯的時候,會出現一個對話方塊通知"一個開啟的檔案的已經改變,是否須要又一次載入?”。但像NetBeans IDE等一些應用程式僅僅是靜靜地更新檔案而沒有通知你。
要實現這樣的"檔案監控”功能,程式必須可以檢測到在檔案系統相關的檔案夾中發生了什麼。一種方法是檢查檔案系統發生了什麼變化。但這樣的方法是低效的。它不能大規模的監控已開啟的檔案或檔案夾。還有一種方法是使用java.nio.file包提供一個檔案監控服務。這個服務同意你為一個檔案夾或多個檔案夾注冊監控服務。
注冊時。僅僅須要告訴須要監控的事件,包含檔案的建立、刪除、改動。當服務監控到對應的事件之後,它就會運行注冊的事件。在注冊的事件會有一個用來監控已經注冊的事件的線程或線程池,這樣當一個注冊事件發生後,它就會進行相關的處理。
檔案檔案夾監控服務WatchService使用很easy,你甚至能夠自行定義。你能夠直接使用它或者在原有基礎之上進行擴充,以便更加適合您的特殊須要。
建立一個檔案夾監控服務的基本過程例如以下:
1、建立一個檔案系統監控服務-WatchService。
2、在檔案系統監控服務上注冊你須要監控的檔案檔案夾的。注冊檔案夾時。指定的監控的類型。
3、編寫一個無限等待。監控事件發生的事件方法。以便當監控隊列中的檔案夾發生響應的事件之後,可以及時響應和終止。
4、整個監控過程的關鍵在於。能夠從監控服務提供的監控秘鑰中擷取監控到的檔案名稱
5、監控到等待事件的發生的關鍵在於能夠運行須要的過程。
6、事件監控完畢之後,又一次等待。
7、監控服務退出或關閉時,調用內部關閉的方法進行關閉。
……
為了更加清晰的說明整個檔案檔案夾的運行過程。我給大家找了一個比較好的說明文檔,連結例如以下:
http://blog.csdn.net/cxhzqhzq/article/details/6604300
Java進階應用程式(一個)-檔案夾監控服務