java读取某个目录是否有新增文件(轮询)

Posted Henu丶雨巷

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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());
    }
}

以上是关于java读取某个目录是否有新增文件(轮询)的主要内容,如果未能解决你的问题,请参考以下文章

java 实现读取某个目录下指定类型的文件

solr分布式索引实战分片配置读取:工具类configUtil.java,读取配置代码片段,配置实例

java 怎么读取web jar中的某个配置文件

正确等待轮询每小时加载文件,直到某个时间

java利用WatchService实时监控某个目录下的文件变化并按行解析(注:附源代码)

JAVA NIO 读取事件的产生机制