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();
            }
        }
    }
  • 相关阅读:
    【HDU3032】Nim or not Nim?(博弈论)
    【BZOJ1022】小约翰的游戏(博弈论)
    【HDU1848】Fibonacci again and again(博弈论)
    【POJ1704】Georgia and Bob(博弈论)
    【BZOJ1299】巧克力棒(博弈论,线性基)
    【Luogu2197】NIM游戏(博弈论)
    【洛谷2252&HDU1527】取石子游戏(博弈论)
    【HDU1846】Brave Game(博弈论)
    【CF888G】Xor-MST(最小生成树,Trie树)
    长链剖分学习笔记
  • 原文地址:https://www.cnblogs.com/swbzmx/p/5623819.html
Copyright © 2011-2022 走看看