zoukankan      html  css  js  c++  java
  • java读取某个目录是否有新增文件(轮询)

    使用 commons-io 中的文件监控

    jar包:

    package org.demo.file;
    
    import java.util.concurrent.TimeUnit;
    import org.apache.commons.io.filefilter.FileFilterUtils;
    import org.apache.commons.io.monitor.FileAlterationMonitor;
    import org.apache.commons.io.monitor.FileAlterationObserver;
    
    /**
     * 文件监控测试
     * @author  
     * @date    2010-11-16
     * @file    org.demo.file.FileMonitor.java
     */
    public class FileMonitorTest {
    
        /**
         * @param args
         * @throws Exception 
         */
        public static void main(String[] args) throws Exception {
            // 监控目录
            String rootDir = "d:\Temp";
            // 轮询间隔 5 秒
            long interval = TimeUnit.SECONDS.toMillis(5);
            // 
            FileAlterationObserver observer = new FileAlterationObserver(
                                                  rootDir, 
                                                  FileFilterUtils.and(
                                                  FileFilterUtils.fileFileFilter(),
                                                  FileFilterUtils.suffixFileFilter(".java")), 
                                                  null);
            observer.addListener(new MyFileListener());
            FileAlterationMonitor monitor = new FileAlterationMonitor(interval,observer);
            // 开始监控
            monitor.start();
        }
    }
    package org.demo.file;
    
    import java.io.File;
    import org.apache.commons.io.monitor.FileAlterationListenerAdaptor;
    
    /**
     * 自定义文件监听器
     * @author  
     * @date    2010-11-16
     * @file    org.demo.file.MyFileListener.java
     */
    public class MyFileListener extends FileAlterationListenerAdaptor{
        @Override
        public void onFileCreate(File file) {
            System.out.println("[新建]:" + file.getAbsolutePath());
        }
        @Override
        public void onFileChange(File file) {
            System.out.println("[修改]:" + file.getAbsolutePath());
        }
        @Override
        public void onFileDelete(File file) {
            System.out.println("[删除]:" + file.getAbsolutePath());
        }
    }
  • 相关阅读:
    ural(Timus) 1019 Line Painting
    ACMICPC Live Archive 2031 Dance Dance Revolution
    poj 3321 Apple Tree
    其他OJ 树型DP 选课
    poj 3548 Restoring the digits
    ACMICPC Live Archive 3031 Cable TV Network
    递归循环获取指定节点下面的所有子节点
    手动触发asp.net页面验证控件事件
    子级Repeater获取父级Repeater绑定项的值
    没有列名的数据绑定
  • 原文地址:https://www.cnblogs.com/henuyuxiang/p/7485974.html
Copyright © 2011-2022 走看看