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. SpringXML方式给bean初始化属性值

    可以在Spring容器初始化bean的时候给bean的属性赋初始值,直接在property标签里设置即可 1 2 3 4 5 6 <bean name="user**" cl ...

  2. jQuery操作dom事件

    参考:jQuery权威指南jQuery初步jQuery选择器jQuery操作domjQuery操作dom事件jQuery插件jQuery操作AjaxjQuery动画与特效jQuery实现导航栏jQue ...

  3. Linux 内核驱动自动创建设备节点并挂载设备

    *注:本文来自http://blog.csdn.net/lwj103862095/article/details/17470573 一.首先需要在最开始定义两个数据结构: static struct ...

  4. index、noindex、follow、nofollow的使用说明

    爬虫是目前最常见的网络程序,曾经有过统计,说是目前的网络流量有一半以上是爬虫使用的.虽然爬虫程序随处可见,但是并不代表这种做法就是合理合法的. 在抓取网页时,我们要让自己的爬虫遵守Robot.txt协 ...

  5. MPAndroidChart Wiki(译文)~Part 1

    1. 基础入门 1.1 添加依赖 Gradle 工程添加依赖 (推荐使用) 项目级build.gradle中添加: allprojects { repositories { maven { url & ...

  6. Leetcode 429. N-ary Tree Level Order Traversal

    bfs class Solution: def levelOrder(self, root: 'Node') -> List[List[int]]: q,ans=[root],[] while ...

  7. [Python] print中的左右对齐问题

    一.数值类型(int.float) #  %d.%f是占位符>>> a = 3.1415926>>> print("%d"%a)    #%d只 ...

  8. usb udev

    [root@localhost ~] # udevadm monitor monitor will print the received events for: UDEV - the event wh ...

  9. HihoCoder1049 后序遍历 分治水题

    水题,是为了给难题(树形DP)做铺垫 描述 在参与过了美食节之后,小Hi和小Ho在别的地方又玩耍了一阵子,在这个过程中,小Ho得到了一个非常有意思的玩具——一棵由小球和木棍连接起来的二叉树! 小Ho对 ...

  10. ubuntu 安装nodejs/npm

    安装发行稳定版 Ubuntu 默认仓库里带有Node.js,版本较旧,这并不是最新版,但是应该很稳定.执行如下命令:   1 2 sudo apt-getupdate sudo apt-getinst ...