2016-05-31 40 views
4

檢測文件寫入或修改很容易,但我想不出一種檢測文件讀取的方法。這是場景。檢測在Java中讀取的文件

程序X(我無法控制)讀取Sample.text並對其進行修改。應該注意的是,程序X在READ之後立即關閉流。

我要寫一個程序來記錄讀取到修改Sample.txt的持續時間/時間。例如,程序X在5:00 PM讀取Sample.txt並在7:25 PM修改它,所以總的持續時間爲2小時25分鐘。

是否有程序包或解決方法來檢測程序X何時/如果Sample.txt被讀取?請注意READ是我想要檢測的應該爲MODIFIED,因爲java.nio.file可以檢測文件修改。

+0

我會相當驚訝...如果這是可能的,除此之外,如果jvm能夠提供這樣的解決方案,那麼這個解決方案在java上運行的平臺上真正起作用。 – GhostCat

+0

這是用於生產環境還是用於調試?您的使用案例讓我覺得您想知道爲什麼X程序在讀取和修改之間需要很長的時間。如果我是對的,你需要的是一個分析器,而不是像WatchService這樣的Java API(它確實不包含任何東西來觀察讀取)。 – Wis

+1

您可以在操作系統級別上編寫自己的IO攔截器,就像防病毒並使用JNI調用它。不容易,但可能。但我真的認爲你不需要這樣的事情。 – user1516873

回答

0

我希望這可以幫助 -

  1. 跟蹤文件中的節目X
  2. 讀取時間總是存儲在數據庫中讀取時間。
  3. 一旦文件被修改,找到記錄的讀取時間和修改時間之間的差異。