在实现配置中心的多种方案中,有基于JDK7+的WatchService方法,其在单机应用中还是挺有实践的意义的。
代码如下:
package com.longge.mytest;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;public class TestWatchService { public static void main(String[] args) throws IOException { // 需要监听的文件目录(只能监听目录) String path = "d:/test"; WatchService watchService = FileSystems.getDefault().newWatchService(); Path p = Paths.get(path); p.register(watchService, StandardWatchEventKinds.ENTRY_MODIFY, StandardWatchEventKinds.ENTRY_DELETE, StandardWatchEventKinds.ENTRY_CREATE); Thread thread = new Thread(() -> { try { while(true){ WatchKey watchKey = watchService.take(); List<WatchEvent<?>> watchEvents = watchKey.pollEvents(); for(WatchEvent<?> event : watchEvents){ //TODO 根据事件类型采取不同的操作。。。。。。。 System.out.println("["+path+"/"+event.context()+"]文件发生了["+event.kind()+"]事件"); } watchKey.reset(); } } catch (InterruptedException e) { e.printStackTrace(); } }); thread.setDaemon(false); thread.start(); // 增加jvm关闭的钩子来关闭监听 Runtime.getRuntime().addShutdownHook(new Thread(() -> { try { watchService.close(); } catch (Exception e) { } })); }}
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
软考中级精品资料免费领
- 历年真题答案解析
- 备考技巧名师总结
- 高频考点精准押题
- 资料下载
- 历年真题
193.9 KB下载数265
191.63 KB下载数245
143.91 KB下载数1148
183.71 KB下载数642
644.84 KB下载数2756
相关文章
发现更多好内容- 如何使用 Java 遍历 Map 集合以获取值?(java怎么遍历map集合获取值)
- 如何实现 Java 数组的倒序输出?(java数组倒序输出的方法是什么)
- 如何实施 Java Room 的版本控制?(Java Room的版本控制如何实施)
- Java 中 multiply 函数的具体用法究竟是什么?(java multiply函数的用法是什么)
- Java 中深拷贝与数据库持久化之间存在怎样的关系?(Java深拷贝与数据库持久化的关系)
- Java 中 Arrays 类的常用方法有哪些?(java中arrays类的方法有哪些)
- 在 Java 中遇到“无法解析为类型”的问题该如何解决?(java中无法解析为类型怎么解决)
- Java Thread 类的构造方法究竟是什么?(java thread类的构造方法是什么)
- Java 中 int 数组如何实现拷贝?(java int数组拷贝怎么实现)
- Java FX 在可访问性方面都有哪些重要的考虑呢?(java javafx在可访问性方面有哪些考虑 )
猜你喜欢
AI推送时光机Java利用WatchService监听文件变化示例
后端开发2023-05-31
怎么在JAVA中利用WatchService监控文件
后端开发2023-05-30
怎么在Java中使用WatchService监控文件内容变化
后端开发2023-05-30
golang监听文件变化的实例
后端开发2024-04-02
java如何监听文件变化并读取文件
后端开发2023-09-26
java怎么监听文件变化并读取文件
后端开发2023-10-27
VUE监听窗口变化事件的示例分析
后端开发2024-04-02
Java实现监听文件变化的三种方案详解
后端开发2024-04-02
Python利用watchdog模块监控文件变化
后端开发2024-04-02
使用golang怎么对文件的变化进行监听
后端开发2023-06-14
Shell脚本实现监测文件变化的示例详解
后端开发2022-06-22
Java利用File类创建文件的示例代码
后端开发2024-04-02
利用nodejs监控文件变化并使用sftp上传到服务器
后端开发2022-06-04
Android TextView实现带链接文字事件监听的三种常用方式示例
后端开发2023-05-30
java 使用线程监控文件目录变化的实现方法
后端开发2023-05-31
利用java读取web项目中json文件为map集合方法示例
后端开发2023-05-31
咦!没有更多了?去看看其它编程学习网 内容吧