zoukankan      html  css  js  c++  java
  • apache commons-io相关介绍-monitor包

    apache commons-io相关介绍-monitor包

    org.apache.commons.io.monitor 文件状态监控

    org.apache.commons.io.monitor包的作用监控指定目录下的文件状态。它使用观察者设计模式设计这些类的关系。当文件创建,文件修改和文件删除事件发生时会调用相应的回调函数。

    基本使用方法:

    package com.demo.monitor;
    import java.io.File;
    import org.apache.commons.io.monitor.FileAlterationListener;
    import org.apache.commons.io.monitor.FileAlterationMonitor;
    import org.apache.commons.io.monitor.FileAlterationObserver;
    public class Demo1 {
    public static void main(String[] args) throws Exception {
        File directory = new File(new File("."), "src");
        FileAlterationObserver observer = new FileAlterationObserver(directory);
        observer.addListener(new MyFileAlterationListener());
        long interval = 1000;
        FileAlterationMonitor monitor = new FileAlterationMonitor(interval);
        monitor.addObserver(observer);
        monitor.start();
    }
    
    public static class MyFileAlterationListener implements
            FileAlterationListener {
        public void onStart(FileAlterationObserver observer) {
            // TODO Auto-generated method stub
            System.out.println("--------onStart ---------");
        }
        public void onDirectoryCreate(File directory) {
            // TODO Auto-generated method stub
            System.out.println("--------onDirectoryCreate ---------");
        }
    
        public void onDirectoryChange(File directory) {
            // TODO Auto-generated method stub
            System.out.println("--------onDirectoryChange ---------");
        }
    
        public void onDirectoryDelete(File directory) {
            // TODO Auto-generated method stub
            System.out.println("--------onDirectoryDelete ---------");
        }
    
        public void onFileCreate(File file) {
            // TODO Auto-generated method stub
            System.out.println("--------onFileCreate ---------");
        }
    
        public void onFileChange(File file) {
            // TODO Auto-generated method stub
            System.out.println("--------onFileChange ---------");
        }
    
        public void onFileDelete(File file) {
            // TODO Auto-generated method stub
            System.out.println("--------onFileDelete ---------");
        }
    
        public void onStop(FileAlterationObserver observer) {
            // TODO Auto-generated method stub
            System.out.println("--------onStop ---------");
        }
    
    }
    

    }

    monitor.start();开启监控器,每隔interval毫秒,onStart会被执行一次,直接结束时,onStop将会被调用。Listener的创建过程以上代码是直接继承了FileAlterationListener接口,所有的接口函数必须被实现。这个过程比较繁琐。当调用者只关心其中一些事件却不得不实现所有函数。简化的方法是使用程序提供的一个适配器类FileAlterationListenerAdaptor(这里使用了适配器模式)。这样调用者只需重写关注的事件函数,大大简化了代码。代码如下:

    package com.demo.monitor;
    import java.io.File;
    import org.apache.commons.io.monitor.FileAlterationListener;
    import org.apache.commons.io.monitor.FileAlterationListenerAdaptor;
    import org.apache.commons.io.monitor.FileAlterationMonitor;
    import org.apache.commons.io.monitor.FileAlterationObserver;
    
    public class Demo2 {
        public static void main(String[] args) throws Exception {
            File directory = new File(new File("."), "src");
            FileAlterationObserver observer = new FileAlterationObserver(directory);
            observer.addListener(new FileAlterationListenerAdaptor(){
                @Override
                public void onFileCreate(File file) {
                    System.out.println("---------onFileCreate--------");
                }
            });
            long interval = 1000;
            FileAlterationMonitor monitor = new FileAlterationMonitor(interval);
            monitor.addObserver(observer);
            monitor.start();
        }
    }
  • 相关阅读:
    DataReader使用
    C# Winform中DataGridView的DataGridViewCheckBoxColumn使用方法
    c#TextBox输入框自动提示、自动完成、自动补全功能
    Winform开发之窗体传值
    Winform开发之窗体显示、关闭与资源释放
    Winform开发之DataGridView的增删改
    Winform开发之DataGridView事件和属性
    Winform开发常用控件之DataGridView的简单数据绑定——代码绑定DataSet、DataTable、IList、SqlDataReader
    Winform开发常用控件之DataGridView的简单数据绑定——自动绑定
    Winform开发常用控件之TreeView菜单导航和权限用法
  • 原文地址:https://www.cnblogs.com/xiaozu/p/4555565.html
Copyright © 2011-2022 走看看