package com.ssh.config; import java.io.IOException; import java.nio.file.FileSystems; import java.nio.file.Path; import java.nio.file.Paths; import java.nio.file.StandardWatchEventKinds; import java.nio.file.WatchEvent; import java.nio.file.WatchKey; import java.nio.file.WatchService; import java.util.List; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class ResourceListener { private static ExecutorService fixedThreadPool = Executors.newFixedThreadPool(5); private WatchService ws; private String listenerPath; private ResourceListener(String path) { try { ws = FileSystems.getDefault().newWatchService(); this.listenerPath = path; start(); } catch (IOException e) { e.printStackTrace(); } } private void start() { fixedThreadPool.execute(new Listner(ws,this.listenerPath)); } public static void addListener(String path) throws IOException { ResourceListener resourceListener = new ResourceListener(path); Path p = Paths.get(path); p.register(resourceListener.ws,StandardWatchEventKinds.ENTRY_MODIFY, StandardWatchEventKinds.ENTRY_DELETE, StandardWatchEventKinds.ENTRY_CREATE); } public static void main(String[] args) throws IOException { ResourceListener.addListener("E:/aaa"); } } class Listner implements Runnable { private WatchService service; private String rootPath; public Listner(WatchService service,String rootPath) { this.service = service; this.rootPath = rootPath; } public void run() { try { while(true){ WatchKey watchKey = service.take(); List<WatchEvent<?>> watchEvents = watchKey.pollEvents(); for(WatchEvent<?> event : watchEvents){ //TODO 根据事件类型采取不同的操作。。。。。。。 System.out.println("["+rootPath+"/"+event.context()+"]文件发生了["+event.kind()+"]事件"); } watchKey.reset(); } } catch (InterruptedException e) { e.printStackTrace(); }finally{ System.out.println("fdsfsdf"); try { service.close(); } catch (IOException e) { e.printStackTrace(); } } } }
相关推荐
本篇文章主要介绍了Java利用WatchService监听文件变化示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
使用WatchService监听文件变化.docx
用java8实现一个文件目录的监听,目录中文件创建、修改、删除等操作
Java实现时间监听Java实现时间监听Java实现时间监听Java实现时间监听Java实现时间监听Java实现时间监听
1.JAVA 监听文件夹变化 2.模拟POST提交文件流同步服务器文件
适用于配置实时动态修改,无需重启服务器。效率极高
java一个监听器的例子
对一个文件夹进行实时监控,当文件夹有新的文件出现时,对其做相应的操作
用java语言编写的ftp小工具,可以按指定时间监控ftp服务器,把服务器指定目录内新产生的文件或者文件夹下载到本地指定文件夹,下载后删除数据。 也可以监控本地文件夹,把文件夹内新产生的文件或者文件夹整体上传到...
基于java开发的局域网监听软件的设计.doc 基于java开发的局域网监听软件的设计.doc 基于java开发的局域网监听软件的设计.doc 基于java开发的局域网监听软件的设计.doc 基于java开发的局域网监听软件的设计.doc 基于...
主要介绍了Java设计模式之监听器模式,结合实例形式较为详细的分析了java设计模式中监听器模式的概念、原理及相关实现与使用技巧,需要的朋友可以参考下
java 使用KeyListener监听键盘 java 使用KeyListener监听键盘
今天小编就为大家分享一篇关于Java实现实时监控目录下文件变化的方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
java入门:java写的一个界面,画了个棋盘,实现panel,button的事件监听
java毕业设计——java本地监听与远程端口扫描系统的设计与实现(源代码+论文).zip java毕业设计——java本地监听与远程端口扫描系统的设计与实现(源代码+论文).zip java毕业设计——java本地监听与远程端口扫描系统的...
Java事件监听器即一组动作接口。如键盘事件KeyEvent对应的接口是: public interface KeyListener extends EventListener { public void keyPressed(KeyEvent ev); public void keyReleased(KeyEvent ev); public ...
Java文件操作一例:Copy 复制文件,虽然是复制文件,不过通过本源码你可以学习很多相关的Java基础技巧,比如Java对文件的事件处理、取得目录内容的事件处理、如何弹出文件选择器、如何得到选择文件的绝对路径、如何...
java本地监听与远程端口扫描源码java本地监听与远程端口扫描源码java本地监听与远程端口扫描源码java本地监听与远程端口扫描源码java本地监听与远程端口扫描源码java本地监听与远程端口扫描源码java本地监听与远程...
讲解了java中的事件和监听的区别。Java中的事件到底是什么?监听又是什么呢?在这里你能找到答案!!
java 使用MouseMotionListener监听鼠标 java 使用MouseMotionListener监听鼠标