java监控路径下文件变化
来源:互联网 发布:java中冒泡排序法代码 编辑:程序博客网 时间:2024/05/16 07:57
之前用jdk7的WatchService API(java.nio.file包)来做目录下的子文件监控,后改为使用commons-io包。主要有下面几点不同:1. WatchService是采用扫描式的,效率低,commons-io是使用事件驱动的,效率高;2. WatchService代码写起来费劲 3. WatchService不能监听到孙文件目录(多级目录),事先父文件夹需要存在,而FileAlterationObserver可以监听多级目录,父目录事先不存在也没问题。http://commons.apache.org/proper/commons-io/,
commons-io功能介绍:
1) 工具类 FilenameUtils
2) FileMonitor工具类包,监听该文件及文件夹变化
3)filters过滤器org.apache.commons.io.filefilter
4) Comparators org.apache.commons.io.comparator包下的工具类,可以方便进行文件的比较
5) input/output包 common io的org.apache.commons.io.input/ org.apache.commons.io.output 包,其中好特别的是TeeOutputStream能将一个输入流分别输出到两个输出流
http://www.javacodegeeks.com/2014/10/apache-commons-io-tutorial.html
http://www.myexception.cn/apache/1777847.html
转载源:http://blog.csdn.net/masternick/article/details/12197141
commons-io-2.3.jar 中,有实现文件监控的类,在org.apache.commons.io.monitor包下,
主要包括 observer ,listener,monitor 含义你懂得滴,典型观察者模式,直接上代码:
listener:
- public class ZJPFileListener implements FileAlterationListener{
- ZJPFileMonitor monitor = null;
- @Override
- public void onStart(FileAlterationObserver observer) {
- //System.out.println("onStart");
- }
- @Override
- public void onDirectoryCreate(File directory) {
- System.out.println("onDirectoryCreate:" + directory.getName());
- }
- @Override
- public void onDirectoryChange(File directory) {
- System.out.println("onDirectoryChange:" + directory.getName());
- }
- @Override
- public void onDirectoryDelete(File directory) {
- System.out.println("onDirectoryDelete:" + directory.getName());
- }
- @Override
- public void onFileCreate(File file) {
- System.out.println("onFileCreate:" + file.getName());
- }
- @Override
- public void onFileChange(File file) {
- System.out.println("onFileCreate : " + file.getName());
- }
- @Override
- public void onFileDelete(File file) {
- System.out.println("onFileDelete :" + file.getName());
- }
- @Override
- public void onStop(FileAlterationObserver observer) {
- //System.out.println("onStop");
- }
- }
- public class ZJPFileMonitor {
- FileAlterationMonitor monitor = null;
- public ZJPFileMonitor(long interval) throws Exception {
- monitor = new FileAlterationMonitor(interval);
- }
- public void monitor(String path, FileAlterationListener listener) {
- FileAlterationObserver observer = new FileAlterationObserver(new File(path));
- monitor.addObserver(observer);
- observer.addListener(listener);
- }
- public void stop() throws Exception{
- monitor.stop();
- }
- public void start() throws Exception {
- monitor.start();
- }
- public static void main(String[] args) throws Exception {
- ZJPFileMonitor m = new ZJPFileMonitor(5000);
- m.monitor("E:\\filepath",new ZJPFileListener());
- m.start();
- }
启动后,每5秒扫描指定路径下文件的变化,很方便
- java监控路径下文件变化
- 监控目录下文件变化
- JAVA实时监控目录下文件的变化
- java 之 classpath下文件路径
- spring java 获取webapp下文件路径
- spring java 获取webapp下文件路径
- Linux 下文件监控
- 路径下文件遍历
- Python for Windows——监控Windows某个目录下文件的变化
- C++ 文件夹下文件监控
- eclipse项目转Android studio项目src下文件路径的变化
- java获取指定路径下文件的方法
- java递归查找某一路径下文件代码
- java中获得src路径下文件的常用方法
- WinCE下文件的路径
- 读某个路径下文件
- linux 下文件的路径
- WinCE下文件的路径
- Java反射学习笔记
- Android程序设计开发范例
- 搭建nginx+uwsgi+django环境
- 统计中纬度与指标的区别
- 结合jdk源代码深入讲解Java中==及equals方法的机理
- java监控路径下文件变化
- 控制台小游戏之贪吃蛇
- poj 1363 Rails 数组模拟栈操作
- 文件权限管理
- PHP+MYSQL登录界面和数据库验证
- UI-1
- python操作mysql——插入、查询、删除
- 动画的重用
- Hibernate查询