package common.io;

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; /**
* Created with IntelliJ IDEA.
* User: superman
* Date: 14-1-5
* Time: 上午11:43
* To change this template use File | Settings | File Templates.
*/
public class Example3 {
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 监控文件变化的更多相关文章

  1. Java中监控文件变化的多种方案

    一.使用Apache.Common.io库 package yungoal.huafeng.utils.files; import com.sun.deploy.util.SyncFileAccess ...

  2. JDK 之 NIO 2 WatchService、WatchKey(监控文件变化)

    JDK 之 NIO 2 WatchService.WatchKey(监控文件变化) JDK 规范目录(https://www.cnblogs.com/binarylei/p/10200503.html ...

  3. Python监控文件变化:watchdog

    Python监控文件变化有两种库:pyinotify和watchdog.pyinotify依赖于Linux平台的inotify,后者则对不同平台的的事件都进行了封装.也就是说,watchdog跨平台. ...

  4. mac 监控文件变化并重启php

    自己撸一个框架,需要监控代码变化 安装fswatch brew install fswatch shell重启PHP脚本reload.sh #!/bin/sh do ps -ef | grep php ...

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

    package common.io; import org.apache.commons.io.filefilter.FileFilterUtils; import org.apache.common ...

  6. [批处理]使用Log.io监控日志变化

    背景 多台服务器安装了不同的开发服务,增加日志监控以随时处理情况 方案 log.io 环境 NodeJs 安装 1.log.io直接无法安装上,使用log.io-ts安装上 npm install - ...

  7. linux 监控文件变化

    介绍 有时候我们常需要当文件变化的时候便触发某些脚本操作,比如说有文件更新了就同步文件到远程机器.在实现这个操作上,主要用到两个工具,一个是rsync,一个是inotifywait .inotifyw ...

  8. Java (四)APACHE Commons IO 复制文件

    上一篇:Java (三)APACHE Commons IO 常规操作 例1:复制文件 1 import java.io.File; 2 import java.io.IOException; 3 4 ...

  9. inotifywait命令如何监控文件变化?

    转载自:https://segmentfault.com/a/1190000038351925 文件监控可以配合rsync实现文件自动同步,例如监听某个目录,当文件变化时,使用rsync命令将变化的文 ...

随机推荐

  1. 20165202 week10课下补做

    相关知识点总结 在数据结构和算法中,排序是很重要的操作,要让一个类可以进行排序,有两种方法: 有类的源代码,针对某一成员变量排序,让类实现Comparable接口,调用Collection.sort( ...

  2. 2018-2019-2 网络对抗技术 20165210 Exp3 免杀原理与实践

    2018-2019-2 网络对抗技术 20165210 Exp3 免杀原理与实践 免杀的概述 免杀,也就是反病毒(AntiVirus)与反间谍(AntiSpyware)的对立面,英文为Anti-Ant ...

  3. New Concept English Two 33 94

    $课文92  自找麻烦 1016. It must have been about two in the morning when I returned home. 我回到家时,肯定已是凌晨两点左右了 ...

  4. Linux系统日志管理

    1.系统常用的日志(日志是用来记录重大事件的工具) /var/log/message      系统信息日志,包含错误信息等 /var/log/secure         系统登录日志 /var/l ...

  5. 解如何利用 XML 和 JavaScript Object Notation 在 Ajax 客户端和 Java 服务器之间传输数据(代码)(Oracle)。

    ---------------------------------ajaxUtil----------------------------------------------------------- ...

  6. MP3格式音频文件结构解析

    MP3的全称是MPEG Audio Layer3,它是一种高效的计算机音频编码方案,它以较大的压缩比将音频文件转换成较小的扩展名为.MP3的文件,基本保持原文件的音质.MP3是ISO/MPEG标准的一 ...

  7. ubuntu16 chrome install

    1,download chrome.deb from : https://www.google.com/chrome/index.html 2,double click chrome.deb and ...

  8. ExtJS小技巧

    一.从form中获取field的三个方法: 1.Ext.getCmp('id'); 2.FormPanel.getForm().findField('id/name'); 3.Ext.get('id/ ...

  9. MySQL的用户账户管理

    1.开启MySQL远程连接 1.sudo -i 2.cd /etc/mysql/mysql.conf.d/ 3.vim mysqld.cnf #bind-address = 127.0.0.1 把前面 ...

  10. 【javascript】如何延迟加载JavaScript(Google推荐的代码)

    下面是Google推荐的代码.这些代码应被放置在</body>标签前(接近HTML文件底部)<script type="text/javascript">f ...