使用apache common-io 监控文件变化.md

Posted jieniyimiao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用apache common-io 监控文件变化.md相关的知识,希望对你有一定的参考价值。

package com.sino.daily.code_2020_3_11;

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;

/**
 * create by 2020-08-01 22:36
 *
 * @author caogu
 */
public class FileAlteration 
    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..");
    


结果:

以上是关于使用apache common-io 监控文件变化.md的主要内容,如果未能解决你的问题,请参考以下文章

基于common-io自动监控文件及文件变化和同步文件的工具类SynFile

java实现文件监控

common-io 文件监听例子

Apache Common-IO 使用

java Apache common-io 讲解

跟我学apache-commonscommons-io的使用