最新common-io-2.0的新功能之文件监控FileAlteration

这部分内容主要有3大类,一个是Monitor类,字面意思就是监控类咯;一个是Observer类,字面意思嘛观察类,用来观察文件的类;一个是listener类,提供各种监听时候的事件处理。

 common-io-2.3下载地址:点击打开链接

就简单点吧,先看了下这几个类的构造函数,非常简单。那我就继承一下好了:

 

Java代码   收藏代码
  1. package com.xuyi.FileListener;  
  2.   
  3. import java.io.File;  
  4.   
  5. import org.apache.commons.io.monitor.FileAlterationListenerAdaptor;  
  6. import org.apache.commons.io.monitor.FileAlterationObserver;  
  7.   
  8. public class FileListenerAdaptor extends FileAlterationListenerAdaptor{  
  9.       
  10.     @Override  
  11.     public void onStart(FileAlterationObserver arg0) {  
  12.         System.out.println("begin listening!");  
  13.         super.onStart(arg0);  
  14.     }  
  15.       
  16.     @Override  
  17.     public void onStop(FileAlterationObserver arg0) {  
  18.         System.out.println("end listening!");  
  19.         super.onStop(arg0);  
  20.     }  
  21.       
  22.     @Override  
  23.     public void onDirectoryCreate(File fold) {  
  24.         System.out.println("fold: "+fold.getAbsolutePath()+" is created.");  
  25.         super.onDirectoryCreate(fold);  
  26.     }  
  27.       
  28.     @Override  
  29.     public void onDirectoryChange(File fold) {  
  30.         System.out.println("fold: "+fold.getAbsolutePath()+" is changed.");  
  31.         super.onDirectoryChange(fold);  
  32.     }  
  33.       
  34.     @Override  
  35.     public void onDirectoryDelete(File fold) {  
  36.         System.out.println("fold: "+fold.getAbsolutePath()+" is deleted.");  
  37.         super.onDirectoryDelete(fold);  
  38.     }  
  39.       
  40.     @Override  
  41.     public void onFileCreate(File file) {  
  42.         System.out.println("file: "+file.getAbsolutePath()+" is created.");  
  43.         super.onFileCreate(file);  
  44.     }  
  45.       
  46.     @Override  
  47.     public void onFileChange(File file) {  
  48.         System.out.println("file: "+file.getAbsolutePath()+" is changed.");  
  49.         super.onFileChange(file);  
  50.     }  
  51.       
  52.     @Override  
  53.     public void onFileDelete(File file) {  
  54.         System.out.println("file: "+file.getAbsolutePath()+" is deleted");  
  55.         super.onFileDelete(file);  
  56.     }  
  57.       
  58. }  

 

override一下listener类的各个方法,以便自己处理一些功能。

 

接下来一个接口实现一下,很简单,见注释:

 

Java代码   收藏代码
  1. package com.xuyi.FileListener;  
  2.   
  3. import java.io.File;  
  4. import java.io.FileFilter;  
  5.   
  6. public class FileFilterImpl implements FileFilter {  
  7.   
  8.     /*  
  9.      * (non-Javadoc) 
  10.      * @see java.io.FileFilter#accept(java.io.File) 
  11.      *  
  12.      * return true:返回所有目录下所有文件详细(包含所有子目录);return false:返回主目录下所有文件详细(不包含所有子目录) 
  13.      */  
  14.     public boolean accept(File pathname) {  
  15.         System.out.println("file_filter: "+pathname);  
  16.         return false;  
  17.     }  
  18.   
  19. }  

 

接下来我们可以测试了:

 

Java代码   收藏代码
  1. package com.xuyi;  
  2.   
  3. import java.io.File;  
  4.   
  5. import org.apache.commons.io.monitor.FileAlterationMonitor;  
  6. import org.apache.commons.io.monitor.FileAlterationObserver;  
  7.   
  8. import com.xuyi.FileListener.FileFilterImpl;  
  9. import com.xuyi.FileListener.FileListenerAdaptor;  
  10.   
  11. public class Test {  
  12.     public static void main(String[] args) {  
  13.         try {  
  14.             //构造观察类主要提供要观察的文件或目录,当然还有详细信息的filter  
  15.             FileAlterationObserver observer = new FileAlterationObserver(new File("J://1"),new FileFilterImpl());  
  16.             //构造收听类 没啥好说的  
  17.             FileListenerAdaptor listener = new FileListenerAdaptor();  
  18.             //为观察对象添加收听对象  
  19.             observer.addListener(listener);  
  20.             //配置Monitor,第一个参数单位是毫秒,是监听的间隔;第二个参数就是绑定我们之前的观察对象。  
  21.             FileAlterationMonitor fileMonitor = new FileAlterationMonitor(5000,new FileAlterationObserver[]{observer});  
  22.             //启动开始监听  
  23.             fileMonitor.start();  
  24.         } catch (Exception e) {  
  25.             e.printStackTrace();  
  26.         }  
  27.     }  
  28. }  

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
抱歉,我无法回答关于qf-image-cropper2.0的问题,因为在提供的引用内容中没有包含与qf-image-cropper2.0相关的信息。请提供更多相关的引用内容,以便我能够为您提供准确的答案。 #### 引用[.reference_title] - *1* [uniapp开发微信小程序之上传图片的裁剪](https://blog.csdn.net/only_zing/article/details/130889697)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [uniapp微信小程序图片裁剪插件,支持自定义尺寸、定点等比例缩放、拖动、图片翻转、剪切圆形/圆角图片、...](https://blog.csdn.net/Honiler/article/details/128163446)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [微信小程序图片裁剪image-cropper插件使用](https://blog.csdn.net/fffvdgjvbsfkb123456/article/details/114598466)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值