关于java一些零零散散的点

Posted petewell

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于java一些零零散散的点相关的知识,希望对你有一定的参考价值。

原文引用https://www.dazhuanlan.com/2019/08/25/5d625ec2c8207/


直接上代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Path path = Paths.get("path"); 
if (Files.exists(path))
try (WatchService watchService = FileSystems.getDefault().newWatchService())
path.register(
watchService,
StandardWatchEventKinds.ENTRY_CREATE,
StandardWatchEventKinds.ENTRY_MODIFY,
StandardWatchEventKinds.ENTRY_DELETE
);
while (true)
WatchKey key = watchService.take(); // 阻塞
for (WatchEvent<?> event : key.pollEvents())
WatchEvent<Path> ev = (WatchEvent<Path>) event;
Path file = ev.context(); // 得到事件中的文档

if (StandardWatchEventKinds.ENTRY_CREATE.equals(event.kind()))
// 创建时


if (StandardWatchEventKinds.ENTRY_MODIFY.equals(event.kind()))
// 修改时


if (StandardWatchEventKinds.ENTRY_DELETE.equals(event.kind()))
// 删除时


key.reset(); // 处理成功后清除队列中的key,否则后续事件无法触发

catch (IOException | InterruptedException e)
e.printStackTrace();

一些注意点

  • 不支持注册单个文档的监控,若path不是文档夹则会抛出java.nio.file.NotDirectoryException

以上是关于关于java一些零零散散的点的主要内容,如果未能解决你的问题,请参考以下文章

从服务器角度分析RPG游戏——NPC的AI

统计算法学习梳理

半年来的学习总结(零零散散的数据机器学习)

Eclipse集成Git的实践

C语言关键字

Jenkins入门总结