检测Java文件修改的最有效方法是什么?
我已经阅读了有关文件轮询的内容,但是轮询方法具有许多缺点,随着所监视文件数量的增加,这些缺点变得显而易见.我宁愿不使用轮询,但许多在线解决方案似乎都将文件轮询作为推荐的方法.我希望也许是与操作系统相关的文件系统更新回调解决方案-在Linux和Windows中都可能吗?
鉴于我目前只打算“观看” 2个文件,因此我仍然对文件轮询解决方案持开放态度.理想情况下,我希望文件轮询不会对性能产生重大影响.
我知道Java 7的WatchService,但是由于7尚未正式发布,因此我犹豫要使用该方法还是JNI库.
非常感激!
编辑:看来文件轮询是一种方法.如果有人可以推荐最安全/有效的方法来实施文件轮询,那将是很好的.
解决方法:
没有Java解决方案让操作系统在文件更改时通知您.可以通过本机调用来实现,但是在这方面每个操作系统都不同,并且Java当然不支持它.如果可能的话,将需要使用JNI进行大量自定义编码.
使用轮询解决方案,只要您轮询修改的日期,它就应该很快.只是要确保不要长时间打开对文件的引用.始终在轮询周期之间将它们关闭,以确保不会造成冲突.