2013-05-14 36 views
-1

我正在嘗試監視文本文件中是否包含一行文本。該文件不斷被刪除並使用相同的名稱和路徑創建,但內容很少更改。在Java中監視文本文件的變化

我想構建一個if語句,以便如果文件內容發生變化,系統將打印到控制檯。

我看了看this Stack Overflow question並嘗試使用java-diff-utils示例找到on this page,但我找不到一種方法來實現它來解決我的問題。

+0

如果「你可以找到一種方法來實現它來解決你的問題」,你爲什麼在這裏問?或者如果你沒有:你嘗試過什麼,你卡在哪裏? – meriton

+0

這是一個錯字,很抱歉。 – user

回答

0

首先生成原始文件的MD5,然後使用後臺線程重新計算MD5並將其與原始值進行比較。當散列改變時,文件內容將會改變。

退房MD5 Hashing Example

如果您使用的是Java 7,您可以使用Watcher Service監視更改該文件。這將取代線程

+0

這聽起來像是要走的路,我會進一步閱讀它和Java 7 Watcher服務。謝謝 – user

0

「高級別」的建議:你可以...

  • 消耗在應用程序初始化的自定義對象的文件內容,並將其存儲在一個靜態變量
  • 定義所述目標的屬性,返回一個表示文件內容的字符串
  • 使用TimerTask來定期實例化一個表示該文件的自定義Object的新實例,並且...
  • ...比較兩個String屬性,以便您可以打印出 後他們應該是不相等的,然後與新創建的對象覆蓋靜態變量的值

注意,這是很難處理經常性任務或文件進行比較專業的方式 - 它只是爲了給你一個草案方向。