zoukankan      html  css  js  c++  java
  • Java实现监控目录下文件变化

    监控目录下的文件的变化,使用的onFilexxx事件,而非onDirectoryxxx事件

    可以直接运行的代码:

    import java.io.File;
    import java.io.FileFilter;
    
    import org.apache.commons.io.monitor.FileAlterationListenerAdaptor;
    import org.apache.commons.io.monitor.FileAlterationMonitor;
    import org.apache.commons.io.monitor.FileAlterationObserver;
    
    /**
     * @author root
     *
     */
    public class MyFileListener extends FileAlterationListenerAdaptor {
    
        /**
         * File system observer started checking event.
         */
        @Override
        public void onStart(FileAlterationObserver observer) {
            super.onStart(observer);
            System.out.println("begin");
        }
    
        /**
         * File system observer finished checking event.
         */
        @Override
        public void onStop(FileAlterationObserver observer) {
            super.onStop(observer);
            System.out.println("end");
        }
    
        @Override  
        public void onFileCreate(File file) {  
            System.out.println("onFileCreate:" + file.getName());  
        }
        
        @Override  
        public void onFileChange(File file) {  
            System.out.println("onFileChange : " + file.getName());  
        } 
        
        
        public static void main(String[] args) {
            try {
    
                // 构造观察类主要提供要观察的文件或目录,当然还有详细信息的filter
                FileAlterationObserver observer = new FileAlterationObserver("/home/share/", new FileFilter() {
                    @Override
                    public boolean accept(File pathname) {
                        return true;
                    }
                });
                
                MyFileListener listener = new MyFileListener();
                // 为观察对象添加收听对象
                observer.addListener(listener);
                // 配置Monitor,第一个参数单位是毫秒,是监听的间隔;第二个参数就是绑定我们之前的观察对象。
                FileAlterationMonitor fileMonitor = new FileAlterationMonitor(3000,
                        new FileAlterationObserver[] { observer });
                // 启动开始监听
                fileMonitor.start();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
  • 相关阅读:
    Node的Buffer
    node中定时器的“先进”用法
    比较setImmediate(func),setTimeout(func),process.nextTick(func)
    node.js事件触发
    node.js express的安装过程
    ”靠谱的C#“单例模式
    JS性能消耗在哪里?
    如何建立索引
    优化之sitemap+RSS
    优化のzencart URL &zenid=.....
  • 原文地址:https://www.cnblogs.com/swbzmx/p/5623819.html
Copyright © 2011-2022 走看看