博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java- WatchService监控
阅读量:5126 次
发布时间:2019-06-13

本文共 2106 字,大约阅读时间需要 7 分钟。

java7中新增WatchService可以监控文件的变动信息(监控到文件是修改,新增、删除等事件;)

其中注册事件是需要的:

StandardWatchEventKinds.ENTRY_MODIFY,//更新StandardWatchEventKinds.ENTRY_DELETE,//创建StandardWatchEventKinds.ENTRY_CREATE,//删除

 

下面是案例:

import java.io.*;import java.nio.file.*;import java.nio.file.attribute.*;import java.nio.channels.*;import java.util.ArrayList;import java.util.LinkedList;import java.util.List;public class WatchFile{    public static void main(String[] args)             throws Exception{        String filePath = ("E:");        // 获取文件系统的WatchService对象        WatchService watchService = FileSystems.getDefault().newWatchService();        Paths.get(filePath).register(watchService                 , StandardWatchEventKinds.ENTRY_CREATE                , StandardWatchEventKinds.ENTRY_MODIFY                , StandardWatchEventKinds.ENTRY_DELETE);    // 如要监控子文件        File file = new File(filePath);        LinkedList
fList = new LinkedList
(); fList.addLast(file); while (fList.size() > 0 ) { File f = fList.removeFirst(); if(f.listFiles() == null) continue; for(File file2 : f.listFiles()){ if (file2.isDirectory()){
//下一级目录 fList.addLast(file2); //依次注册子目录 Paths.get(file2.getAbsolutePath()).register(watchService , StandardWatchEventKinds.ENTRY_CREATE , StandardWatchEventKinds.ENTRY_MODIFY , StandardWatchEventKinds.ENTRY_DELETE); } } } while(true) { // 获取下一个文件改动事件 WatchKey key = watchService.take(); for (WatchEvent
event : key.pollEvents()) { System.out.println(event.context() +" --> " + event.kind()); } // 重设WatchKey boolean valid = key.reset(); // 如果重设失败,退出监听 if (!valid) { break; } } }}

 

转载于:https://www.cnblogs.com/hwaggLee/p/6552561.html

你可能感兴趣的文章
FAQ about MB STAR C4, MB STAR C5 Update
查看>>
John Deere Service Advisor 5.2.467 2019 Agriculture Equipment Division
查看>>
MB Star C6 Benz Diagnostic Tool with DOIP&AUDIO Function
查看>>
Service Advisor John Deere Software
查看>>
rpm命令
查看>>
取IP地址的几种方法
查看>>
替换多个文件关键字的方法
查看>>
echo的一些参数
查看>>
文件和目录权限相关命令
查看>>
用户组相关命令 chown chmod
查看>>
htpasswd创建密码文件
查看>>
vi 一些快捷键
查看>>
获取文件权限为数字的几种方法
查看>>
date命令的一些参数
查看>>
more命令、less命令、head命令、tail命令、tailf命令、cut命令
查看>>
环境变量
查看>>
/etc/login.defs配置文件 /etc/default/useradd配置文件
查看>>
查看用户相关命令w\who\last、lastlog
查看>>
文件名相关命令
查看>>
用户和用户组相关命令
查看>>