Java高级应用(一个)-文件夹监控服务
最近。在研究一些比较成熟的框架。他们还发现,他们中的一些相当不错的文章。现在,对于一些在你们中间一个简单的翻译(版的英文文章,非常有帮助)。
译:原文链接
你有没有发现,当你编辑一个文件。同一时候使用还有一个IDE或编辑器进行编辑的时候,会出现一个对话框通知"一个打开的文件的已经改变,是否须要又一次载入?”。但像NetBeans IDE等一些应用程序仅仅是静静地更新文件而没有通知你。
要实现这样的"文件监控”功能,程序必须可以检測到在文件系统相关的文件夹中发生了什么。一种方法是检查文件系统发生了什么变化。但这样的方法是低效的。它不能大规模的监控已打开的文件或文件夹。还有一种方法是使用java.nio.file包提供一个文件监控服务。这个服务同意你为一个文件夹或多个文件夹注冊监控服务。
注冊时。仅仅须要告诉须要监控的事件,包含文件的创建、删除、改动。当服务监控到对应的事件之后,它就会运行注冊的事件。在注冊的事件会有一个用来监控已经注冊的事件的线程或线程池,这样当一个注冊事件发生后,它就会进行相关的处理。
文件文件夹监控服务WatchService使用很easy,你甚至能够自行定义。你能够直接使用它或者在原有基础之上进行扩展,以便更加适合您的特殊须要。
创建一个文件夹监控服务的基本过程例如以下:
1、创建一个文件系统监控服务-WatchService。
2、在文件系统监控服务上注冊你须要监控的文件文件夹的。注冊文件夹时。指定的监控的类型。
3、编写一个无限等待。监控事件发生的事件方法。以便当监控队列中的文件夹发生响应的事件之后,可以及时响应和终止。
4、整个监控过程的关键在于。能够从监控服务提供的监控秘钥中获取监控到的文件名
5、监控到等待事件的发生的关键在于能够运行须要的过程。
6、事件监控完毕之后,又一次等待。
7、监控服务退出或关闭时,调用内部关闭的方法进行关闭。
……
为了更加清晰的说明整个文件文件夹的运行过程。我给大家找了一个比較好的说明文档,链接例如以下:
Java高级应用(一个)-文件夹监控服务的更多相关文章
- java+上传一个文件夹
在web项目中上传文件夹现在已经成为了一个主流的需求.在OA,或者企业ERP系统中都有类似的需求.上传文件夹并且保留层级结构能够对用户行成很好的引导,用户使用起来也更方便.能够提供更高级的应用支撑. ...
- java遍历统计一个文件夹中所有文件单词出现次数
思路就是通过递归进行文件遍历,把所有文件夹中的非目录文件都遍历一遍,并判断其中读取到的字符串是不是单词,并对单词进行记录和计数,并在最后进行排序输出,下面是代码: package word; impo ...
- 用Java实现将多级文件夹下的所有文件统一放到一个文件夹中
每次下了电影(男生懂得呦),每部电影都放在一个单独的文件夹里,看的时候很是不方便啊,一直重复着进入文件夹.后退,再进.再退的操作,而手动把这些电影全部复制出来又太繁琐.因此为了解决这个问题,用IO写了 ...
- 键盘录入一个文件夹路径,统计该文件夹(包含子文件夹)中每种类型的文件及个数,注意:用文件类型(后缀名,不包含.(点),如:"java","txt")作为key, 用个数作为value,放入到map集合中,遍历map集合
package cn.it.zuoye5; import java.io.File;import java.util.HashMap;import java.util.Iterator;import ...
- flume监控一个linux指定的一个文件夹的文件信息
1.编辑一个配置文件 flume-app.conf 拷贝至fulme的安装目录的conf下 # The configuration file needs to define the sources, ...
- Java基础面试操作题: File IO 文件过滤器FileFilter 练习 把一个文件夹下的.java文件复制到另一个文件夹下的.txt文件
package com.swift; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File ...
- Java遍历一个文件夹下的全部文件
Java工具中为我们提供了一个用于管理文件系统的类,这个类就是File类,File类与其它流类不同的是,流类关心的是文件的内容.而File类关心的是磁盘上文件的存储. 一,File类有多个构造器,经常 ...
- 代码实现:从键盘输入接收一个文件夹路径,打印出该文件夹下所有的.java文件名
package com.loaderman.test; import java.io.File; import java.io.FileReader; import java.util.Scanner ...
- java io流 对文件夹的操作
java io流 对文件夹的操作 检查文件夹是否存在 显示文件夹下面的文件 ....更多方法参考 http://www.cnblogs.com/phpyangbo/p/5965781.html ,与文 ...
随机推荐
- OCulus Rift 游戏开发六原则
本文章由cartzhang编写,转载请注明出处. 所有权利保留. 文章链接:http://blog.csdn.net/cartzhang/article/details/46685477 作者:car ...
- [AngularFire2] Building an Authentication Observable Data Service
After successfully login, we want something help to check whether user has already login or not. And ...
- js中ajax连接服务器open函数的另外两个默认参数get请求和默认异步(open的post方式send函数带参数)(post请求和get请求区别:get:快、简单 post:安全,量大,不缓存)(服务器同步和异步区别:同步:等待服务器响应当中浏览器不能做别的事情)(ajax和jquery一起用的)
js中ajax连接服务器open函数的另外两个默认参数get请求和默认异步(open的post方式send函数带参数)(post请求和get请求区别:get:快.简单 post:安全,量大,不缓存)( ...
- php实现栈的压入、弹出序列(**)(算法步骤)(画图)
php实现栈的压入.弹出序列(**)(算法步骤)(画图) 一.总结 1.算法步骤:一定要把算法步骤写下来,要不然太浪费时间了,尤其是思维不清晰的时候,尤其是题目有难度的时候,不然的话也非常容易出现低级 ...
- Mysql用户本机登陆不成功的解决
mysql新建一个用户,本机不能登陆,但是远程能够登陆,不知什么原因,最后查阅 http://blog.itpub.net/12679300/viewspace-1453490/ 这篇文章得以解决,进 ...
- VO对象通过groovy模板映射XML文件
介绍 之前写过JAVA+XSLT相关的技术博客,近期研究了一个开源工具包org.codehaus.groovy,处理VO对象和XML文件映射很方便. 简言之:将VO对象中的属性(包含Collectio ...
- LaunchImage启动黑屏-模拟器可以,但是真机黑屏
名称和尺寸都是对的,就是不显示.结果美工重新做一张图片就行了,想了半天都没想到是图片本身等问题啊
- CocoaPods详解之(二)----进阶篇
CocoaPods详解之----进阶篇 作者:wangzz 原文地址:http://blog.csdn.net/wzzvictory/article/details/19178709 转载请注明出处 ...
- Dll注入技术之消息钩子
转自:黑客反病毒 DLL注入技术之消息钩子注入 消息钩子注入原理是利用Windows 系统中SetWindowsHookEx()这个API,他可以拦截目标进程的消息到指定的DLL中导出的函数,利用这个 ...
- window.url.createobjecturl 兼容多种浏览器(IE,google,360,Safari,firefox)
<script type="text/javascript"> function setImagePreview() { var docObj = document.g ...