zoukankan      html  css  js  c++  java
  • 使用apache common-io 监控文件变化

    package common.io;
    
    
    import org.apache.commons.io.filefilter.FileFilterUtils;
    import org.apache.commons.io.monitor.FileAlterationListener;
    import org.apache.commons.io.monitor.FileAlterationMonitor;
    import org.apache.commons.io.monitor.FileAlterationObserver;
    
    
    import java.io.File;
    import java.util.concurrent.TimeUnit;
    
    
    /**
     * Created with IntelliJ IDEA.
     * User: superman
     * Date: 14-1-5
     * Time: 上午11:43
     * To change this template use File | Settings | File Templates.
     */
    public class Example3 {
        public static void main(String[] args) throws Exception{
            File directory = new File("D:/test");
            // 轮询间隔 5 秒
            long interval = TimeUnit.SECONDS.toMillis(5);
            // 创建一个文件观察器用于处理文件的格式
            FileAlterationObserver observer = new FileAlterationObserver(directory, FileFilterUtils.and(
                    FileFilterUtils.fileFileFilter(),FileFilterUtils.suffixFileFilter(".txt")));
            //设置文件变化监听器
            observer.addListener(new MyFileListener());
            FileAlterationMonitor monitor = new FileAlterationMonitor(interval,observer);
            monitor.start();
            //Thread.sleep(30000);
            //monitor.stop();
        }
    }
    

      

    final class MyFileListener implements FileAlterationListener{
        @Override
        public void onStart(FileAlterationObserver fileAlterationObserver) {
            System.out.println("monitor start scan files..");
        }
    
    
        @Override
        public void onDirectoryCreate(File file) {
            System.out.println(file.getName()+" director created.");
        }
    
    
        @Override
        public void onDirectoryChange(File file) {
            System.out.println(file.getName()+" director changed.");
        }
    
    
        @Override
        public void onDirectoryDelete(File file) {
            System.out.println(file.getName()+" director deleted.");
        }
    
    
        @Override
        public void onFileCreate(File file) {
            System.out.println(file.getName()+" created.");
        }
    
    
        @Override
        public void onFileChange(File file) {
            System.out.println(file.getName()+" changed.");
        }
    
    
        @Override
        public void onFileDelete(File file) {
            System.out.println(file.getName()+" deleted.");
        }
    
    
        @Override
        public void onStop(FileAlterationObserver fileAlterationObserver) {
            System.out.println("monitor stop scanning..");
        }
    }
    

      

  • 相关阅读:
    终于看到费德勒在法网如愿!
    o(∩_∩)o...,今天去博客园了!
    条款4:使用Conditional特性代替#if条件编译
    MSDTC无法启动的解决方法
    2009 很有意义的一天
    从现在开始,争取记录每天所学到的、所感受到的、所遇见到的点点滴滴!
    了解MOSS2007 内容类型ID(Content Type IDs)命名规则
    CreateSpecificCulture('zhcn')和new CultureInfo('zhcn')的区别
    金华大显数码科技有限公司诚聘
    使用SQL Server中按位于来表示组合状态
  • 原文地址:https://www.cnblogs.com/twodog/p/12135356.html
Copyright © 2011-2022 走看看