2013-01-21 69 views
2

我在2分鐘的持續計劃中尋找某些消息,在Linux上用Java讀取日誌文件。當我檢測到LastModified已經改變時,我存儲最後一個偏移量(RandomAccessFile getFilePointer)並從中讀取它;這是最佳做法還是對的?使用Java監控文件

+0

http://stackoverflow.com/questions/10118264/most-efficient-way-to-tail-poll-a-log-file-in-java –

+0

業的可能欺騙 - 但在方法上沒有真正的解決方案。很多關於第三方工具和Java 7的建議,但是如果我自己以這種方式實現它,我使用的是上面正確的方法.... –

+0

好點 - 希望這個線程能夠提供清晰度! –

回答

4

如果您使用的是Java 7,那麼您可以使用WatchService在目錄內的文件更改時通知您。這與中斷類似,不需要連續輪詢。有關WatchService的更多詳細信息,請參閱this。否則,你最好用你已經做過的輪詢方法。