我有一个应用程序,我需要检查可能在我的执行过程中动态创建的文件,在文件尚未显示的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. 如何在动态创建的ASP.net控件中动态创建ASP.net控件
- 3. 如何检查动态创建的复选框状态
- 4. 如何查看动态创建的TextView的setBackgroundResource()的xml文件?
- 5. 如何在java中动态检查条件?
- 6. 如何在DNN 7中动态创建.ascx文件中的DNNDateTimePicker?
- 7. 如何动态地创建KML文件
- 8. 如何创建动态文件视图?
- 9. 如何创建动态视频文件?
- 10. 如何动态创建安装文件
- 11. 如何动态创建类文件?
- 12. 如何在Java中创建文件夹?
- 13. 在asp中创建动态文件夹
- 14. 在iPhone中动态创建XML文件
- 15. 在python中创建动态文件名
- 16. 在jsp文件中动态创建url
- 17. 如何在.aspx文件中动态创建ASP.Net控件?
- 18. 在java中启动时创建文件
- 19. 如何从KML使用Java动态创建KMZ文件
- 20. 在哪里检查动态创建的复选框的状态
- 21. 创建动态上下文的com.sun.net.httpserver.HttpServer(JAVA)
- 22. 动态创建.ics文件
- 23. 动态创建文件
- 24. pl sql&java - 创建动态查询
- 25. 如何动态创建XML(java)?
- 26. 如何动态创建Java POJO类?
- 27. 如何在动态查找器中创建瞬态属性?
- 28. 如何在动态查询中创建静态值
- 29. 在java中创建文件
- 30. 如何在dbml文件中创建动态表?
这很酷。不能等。 – 2010-04-27 21:34:54