2014-02-26 45 views
2


我通過BufferedReader實時讀取日誌文件。這工作很好。但每一天都有一個日誌旋轉,這意味着我的日誌文件將被重命名,並不再改變。一個新的日誌文件將被創建在同一個地方。在我可以更改爲新的日誌文件之前,我需要讀完當前的日誌文件,使用BufferedReader這是沒有問題的,但我怎麼能發現文件名已更改?如何跟蹤,如果文件已被重命名?

我試過打電話file.getPath()file.getAbsolutePath(),但這不起作用,因爲File -objects路徑在創建之後被修復。

我也試過使用WatchService,但追加到文件導致ENTRY_DELETE太。用於檢查它是否是重命名的結果總是很重要。

有沒有人知道一種方法來判斷日誌文件是否已被重命名?

+1

前段時間我回答了一個[類似問題](http://stackoverflow.com/a/16251508/2071828) - 希望它有幫助。 –

+0

我發現答案並嘗試過,但正如我所提到的,檢測重命名而不是追加的開銷非常大。 –

+3

對不起,我沒有看到這是如何「太多開銷」。 – fge

回答

2

你可以試試JNotify。這項工作雖然不知道所需的資源。

+0

事實上,這正是我正在尋找的,不幸的是它不適用於舊的操作系統。 –

相關問題