我有一個應用程序,我需要檢查可能在我的執行過程中動態創建的文件,在文件尚未顯示的MAX時間後,我會放棄。我想知道是否有更有效的方法在Java中檢查除輪詢之外的文件,然後每隔X秒鐘進行一次睡眠?如果不是這樣做最有效的方式是什麼?如何在Java中檢查動態創建的文件?
回答
您當前必須輪詢文件系統,如您所述。 Java 7應該有file system notifications,所以這應該在某些時候變得更容易。
如果同一個程序正在創建文件作爲輪詢,則可以改爲創建文件的邏輯使用Object.notify()通知程序的一部分。 wait()和notify/notifyAll()機制的一般描述可以在這裏找到:http://java.sun.com/docs/books/tutorial/essential/concurrency/guardmeth.html
這似乎是一個好主意,但不適用於我的情況,因爲該文件是在外部生成的。 – Traker 2010-04-27 21:09:09
您可以嘗試JPoller來輪詢文件更改。
如果您在Windows上運行,則可以獲取目錄更改通知,請參閱Obtaining Directory Change Notifications。當然,這不是跨平臺的,並且需要使用JNA或類似的本地網橋。實際上,JNA的offsers如類,FileMonitor類(在下載中)使用底層平臺的文件更改通知。
如果你正在觀看一小部分或更少的文件,那麼當然,輪詢不太可能是一個性能問題,它只是不是一個「感覺良好」的解決方案 - 但並不是那麼糟糕,純java解決方案。另一方面,監視包含數千個文件的目錄將受益於來自操作系統的直接消息。
- 1. 如何在動態創建的目錄中創建文件?
- 2. 如何檢查焦點動態創建的控件?
- 3. 如何在動態創建的ASP.net控件中動態創建ASP.net控件
- 4. 如何檢查動態創建的複選框狀態
- 5. 如何在java中創建動態路徑並以java編寫文件數據
- 6. 如何查看動態創建的TextView的setBackgroundResource()的xml文件?
- 7. 如何在java中動態檢查條件?
- 8. 如何在DNN 7中動態創建.ascx文件中的DNNDateTimePicker?
- 9. 如何動態創建安裝文件
- 10. 如何創建動態文件視圖?
- 11. 如何創建動態視頻文件?
- 12. 如何動態地創建KML文件
- 13. 如何動態創建類文件?
- 14. 如何在java中創建.dat文件
- 15. 如何在java中創建wsdl文件
- 16. 如何在Java中創建文件夾?
- 17. 如何在java中創建.mpp文件?
- 18. 動態創建的文件
- 19. 在python中創建動態文件名
- 20. 在iPhone中動態創建XML文件
- 21. 在asp中創建動態文件夾
- 22. 在Perl中動態創建文件
- 23. 在jsp文件中動態創建url
- 24. 如何從在java中動態創建的JTree生成XML文件
- 25. 如何在.aspx文件中動態創建ASP.Net控件?
- 26. 如何在Android上創建狀態檢查活動?
- 27. 如何允許在CherryPy中下載動態創建的文件?
- 28. 如何在項目中包含動態創建的文件?
- 29. 如何從KML使用Java動態創建KMZ文件
- 30. 在java中啓動時創建文件
這很酷。不能等。 – 2010-04-27 21:34:54