文件夹监听

 当文件夹下的文件有变动时(新增、修改、删除。。。)需要作出相应的处理,如每当在文件夹里插入一个文件就要拿出来解析入库,这时就需要一个文件夹监听的工具。我使用的是----Common-io中的FileAlterationListenerAdaptor,只需要继承该类,并且修改相应的方法即可。


public class FileListener extends FileAlterationListenerAdaptor  {

    /**
     * 此方法必须要被重写,如果不写此方法,监听器将失效
     */
    @Override
    public void onStart(FileAlterationObserver observer) {
        super.onStart(observer);
    }

    @Override
    public void onStop(FileAlterationObserver observer) {
        super.onStop(observer);
    }

    /**
     * 文件创建时执行
     */
    @Override
    public void onFileCreate(File file) {
        System.out.println("有文件新增");
    }

    /**
     * 文件改变时执行
     * @param file
     */
    @Override
    public void onFileChange(File file) {
        System.out.println("有文件改变");
    }

    /**
     * 文件删除时执行
     * @param file
     */
    @Override
    public void onFileDelete(File file) {
        System.out.println("有文件删除");
    }

    }

根据业务需要,在对应的方法里编写对file的处理。

运行:

public static void main(String[] args) {
        //定义文件目录
        String path = "D:/";
        FileAlterationObserver observer = new FileAlterationObserver(path);
        FileListener listener = new FileListener();
        // 为观察对象添加收听对象
        observer.addListener(listener);
        // 配置Monitor,第一个参数单位是毫秒,是监听的间隔;第二个参数就是绑定我们之前的观察对象。
        FileAlterationMonitor fileMonitor = new FileAlterationMonitor(
                1000, observer);
        // / 启动开始监听
        try {
            fileMonitor.start();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

 

你可能感兴趣的:(java,util)