最近。在研究一些比较成熟的框架。他们还发现,他们中的一些相当不错的文章。现在,对于一些在你们中间一个简单的翻译(版的英文文章,非常有帮助)。
译:原文链接
你有没有发现,当你编辑一个文件。同一时候使用还有一个IDE或编辑器进行编辑的时候,会出现一个对话框通知"一个打开的文件的已经改变,是否须要又一次载入?”。但像NetBeans IDE等一些应用程序仅仅是静静地更新文件而没有通知你。
要实现这样的"文件监控”功能,程序必须可以检測到在文件系统相关的文件夹中发生了什么。一种方法是检查文件系统发生了什么变化。但这样的方法是低效的。它不能大规模的监控已打开的文件或文件夹。还有一种方法是使用java.nio.file包提供一个文件监控服务。这个服务同意你为一个文件夹或多个文件夹注冊监控服务。
注冊时。仅仅须要告诉须要监控的事件,包含文件的创建、删除、改动。当服务监控到对应的事件之后,它就会运行注冊的事件。在注冊的事件会有一个用来监控已经注冊的事件的线程或线程池,这样当一个注冊事件发生后,它就会进行相关的处理。
文件文件夹监控服务WatchService使用很easy,你甚至能够自行定义。你能够直接使用它或者在原有基础之上进行扩展,以便更加适合您的特殊须要。
创建一个文件夹监控服务的基本过程例如以下:
1、创建一个文件系统监控服务-WatchService。
2、在文件系统监控服务上注冊你须要监控的文件文件夹的。注冊文件夹时。指定的监控的类型。
3、编写一个无限等待。监控事件发生的事件方法。以便当监控队列中的文件夹发生响应的事件之后,可以及时响应和终止。
4、整个监控过程的关键在于。能够从监控服务提供的监控秘钥中获取监控到的文件名
5、监控到等待事件的发生的关键在于能够运行须要的过程。
6、事件监控完毕之后,又一次等待。
7、监控服务退出或关闭时,调用内部关闭的方法进行关闭。
……
为了更加清晰的说明整个文件文件夹的运行过程。我给大家找了一个比較好的说明文档,链接例如以下:
http://blog.csdn.net/cxhzqhzq/article/details/6604300