import config.Config;

 import java.io.IOException;
import java.nio.file.*;
import java.util.List;
import java.util.concurrent.TimeUnit; /**
* Created by jason on 2017/2/14.
*/
public class WatchDirService {
private WatchService watchService;
private boolean notDone = true; public WatchDirService(String dirPath){
init(dirPath);
} private void init(String dirPath) {
Path path = Paths.get(dirPath);
try {
watchService = FileSystems.getDefault().newWatchService();
path.register(watchService, StandardWatchEventKinds.ENTRY_CREATE,StandardWatchEventKinds.ENTRY_MODIFY,StandardWatchEventKinds.ENTRY_DELETE);
} catch (IOException e) {
e.printStackTrace();
}
} public void start(){
System.out.print("watch...");
while (notDone){
try {
WatchKey watchKey = watchService.poll(Config.POLL_TIME_OUT, TimeUnit.SECONDS);
System.out.print("change");
if(watchKey != null){
List<WatchEvent<?>> events = watchKey.pollEvents();
for (WatchEvent event : events){
WatchEvent.Kind<?> kind = event.kind();
if (kind == StandardWatchEventKinds.OVERFLOW){
continue;
}
WatchEvent<Path> ev = event;
Path path = ev.context();
if(kind == StandardWatchEventKinds.ENTRY_CREATE){
System.out.println("create " + path.getFileName());
}else if(kind == StandardWatchEventKinds.ENTRY_MODIFY){
System.out.println("modify " + path.getFileName());
}else if(kind == StandardWatchEventKinds.ENTRY_DELETE){
System.out.println("delete " + path.getFileName());
}
}
if(!watchKey.reset()){
System.out.println("exit watch server");
break;
}
}
} catch (InterruptedException e) {
e.printStackTrace();
return;
}
}
}
}

WatchDirService 实时监控的更多相关文章

  1. 安装 log.io 实时监控 php_error 日志

    Log.io 实时监控 php_error.log 日志 开启 php_error 实时监控日志的第一步,要首先开启 php_error 的功能. vi php.ini 修改 PHP 配置文件,将 ; ...

  2. Android(Linux)实时监控串口数据

    之前在做WinCE车载方案时,曾做过一个小工具TraceMonitor,用于显示WinCE系统上应用程序的调试信息,特别是在实车调试时,用于监控和显示CAN盒与主机之间的串口数据.因为需要抢占市场先机 ...

  3. 项目-基于视频压缩的实时监控系统--tiny6410

    项目-基于视频压缩的实时监控系统--tiny6410 @国嵌linux学习笔记. 1. 构造服务端结构体 server struct server { int epfd; //保存epoll指针 st ...

  4. 实时监控log文件

    一个进程在运行,并在不断的写log,你需要实时监控log文件的更新(一般是debug时用),怎么办,不断的打开,关闭文件吗? 不用,至少有两个方法,来自两个很常用的命令: tail -f log.tx ...

  5. 利用ngxtop实时监控nginx的访问情况

    关于对nginx web server的实时访问的实时监控问题,我很久之前就想实现的,现在虽有nginx自带的status扩展,但那是全局的,无法细分到vhost,并且提供的metric也很少,加之目 ...

  6. OVM-V1.2 版发布,新增实时监控、支持一键升级

    OVM是国内首款.完全免费.企业级--混合虚拟化管理平台,OVM是从中小企业目前的困境得到启发,完全基于国内企业特点开发,更多的关注国内中小企业用户的产品需求. OVM-V1.2 该版本功能变动如下: ...

  7. Spotlight实时监控Windows Server 2008

    Windows Server 2008作为服务器平台已逐渐被推广和应用,丰富的功能和良好的稳定性为其赢得了不错的口碑.但是和Windows Server 2003相比,其系统的自我监控功能并没有多大的 ...

  8. 转: 透过CAT,来看分布式实时监控系统的设计与实现

    评注: 开源的分布式监控系统 转:http://www.infoq.com/cn/articles/distributed-real-time-monitoring-and-control-syste ...

  9. C#实现对文件目录的实时监控

    本文主要描述如何通过C#实现实时监控文件目录下的变化,包括文件和目录的添加,删除,修改和重命名等操作. 首先,我们需要对.net提供的FileSystemWatcher类有所了解.我有些懒,找了MSD ...

随机推荐

  1. Android开发-Android Studio问题以及解决记录

    [Android开发] Android Studio问题以及解决记录   http://blog.csdn.net/niubitianping/article/details/51400721 1.真 ...

  2. Java笔记(二十一) 动态代理

    动态代理 一.静态代理 代理的背后一般至少有一个实际对象,代理的外部功能和实际对象一般是一样的, 用户与代理打交道,不直接接触实际对象.代理存在的价值: 1)节省成本比较高的实际对象创建开销,按需延迟 ...

  3. Android的BroadcastReceiver组件

    BroadcastReceiver的作用: BroadcastReceiver,是和Intent有很大关系的Android组件. Android中的 Intent 可以用来: 1. 在应用程序内部和应 ...

  4. [PA2014]Budowa

    [PA2014]Budowa 题目大意: 有A和B两名候选人.共有\(n(n\le1000)\)个人参加投票.他们之间形成了一个树结构,树上的结点有两种身份:专家(叶子结点)或领导(非叶子结点).每位 ...

  5. Tarjan求割点(割顶) 割边(桥)

    割点的定义: 感性理解,所谓割点就是在无向连通图中去掉这个点和所有和这个点有关的边之后,原先连通的块就会相互分离变成至少两个分离的连通块的点. 举个例子: 图中的4号点就是割点,因为去掉4号点和有关边 ...

  6. JavaScript定义函数

    函数声明 一个函数定义(也称为函数声明,或函数语句)由一系列的function关键字组成,依次为: 1函数的名称. 2函数参数列表,包围在括号中并由逗号分隔. 3定义函数的 JavaScript 语句 ...

  7. srand rand

    #include <stdlib.h> srand( (time(0)); rand()%100;

  8. select应用

    服务端源码 #!/usr/bin/env python3 # -*- coding: utf-8 -*- """ @author: zengchunyun "& ...

  9. Vue使用中常见问题

    1.安装sass时报未找到 1.原因应该同时安装:1.npm install --save-dev sass-loader    2.npm install --save-dev node-sass ...

  10. GMA Round 1 最短距离

    传送门 最短距离 在椭圆C:$\frac{x^2}{20^2}+\frac{y^2}{18^2}=1$上作两条相互垂直的切线,切线交点为P,求P到椭圆C的最短距离.结果保留6位小数. 设椭圆方程:$\ ...