Package org.miaixz.bus.core.io.watch
Class WatchServiceWrapper
java.lang.Object
org.miaixz.bus.core.io.watch.WatchServiceWrapper
- All Implemented Interfaces:
Closeable,Serializable,AutoCloseable,WatchService,Wrapper<WatchService>,Provider
public class WatchServiceWrapper
extends Object
implements WatchService, Wrapper<WatchService>, Serializable
WatchEvent 包装类,提供可选的监听事件和监听选项,实现方法包括:
- 注册:
registerPath(Path, int)注册需要监听的路径。 - 监听:
watch(Watcher, Predicate)启动监听并指定事件触发后的行为。
- Since:
- Java 17+
- Author:
- Kimi Liu
- See Also:
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()getRaw()获取原始对象booleanisClosed()是否已关闭static WatchServiceWrapperof(WatchEvent.Kind<?>... events) 创建WatchServiceWrapperpoll()注册单一的监听registerPath(Path path, int maxDepth) 递归将指定路径加入到监听中 如果提供的是目录,则监听目录本身和目录下的目录和文件,深度取决于maxDepthsetEvents(WatchEvent.Kind<?>... events) 监听事件列表,见:StandardWatchEventKinds监听事件列表,见:StandardWatchEventKindssetModifiers(WatchEvent.Modifier... modifiers) 设置监听选项,例如监听频率等,可设置项包括:take()voidwatch(BiConsumer<WatchEvent<?>, WatchKey> action) 执行事件获取并处理WatchEvent.context()是实际操作的文件或目录的相对监听路径的Path,非绝对路径WatchKey.watchable()是监听的Path 此方法调用后阻塞线程,直到触发监听事件,执行后退出,无循环执行操作voidwatch(BiConsumer<WatchEvent<?>, WatchKey> action, Predicate<WatchEvent<?>> watchFilter) 执行事件获取并处理WatchEvent.context()是实际操作的文件或目录的相对监听路径的Path,非绝对路径WatchKey.watchable()是监听的Path 此方法调用后阻塞线程,直到触发监听事件,执行后退出,无循环执行操作voidwatch(Watcher watcher, Predicate<WatchEvent<?>> watchFilter) 执行事件获取并处理WatchEvent.context()是实际操作的文件或目录的相对监听路径的Path,非绝对路径WatchKey.watchable()是监听的Path 此方法调用后阻塞线程,直到触发监听事件,执行后退出,无循环执行操作
-
Constructor Details
-
WatchServiceWrapper
构造- Parameters:
events- 监听事件列表
-
-
Method Details
-
of
创建WatchServiceWrapper- Parameters:
events- 监听事件列表,如新建、修改、删除等- Returns:
- WatchServiceWrapper
-
getRaw
Description copied from interface:Wrapper获取原始对象- Specified by:
getRawin interfaceWrapper<WatchService>- Returns:
- 原始对象
-
isClosed
public boolean isClosed()是否已关闭- Returns:
- 是否已关闭
-
close
public void close()- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Specified by:
closein interfaceWatchService
-
poll
- Specified by:
pollin interfaceWatchService
-
poll
- Specified by:
pollin interfaceWatchService- Throws:
InterruptedException
-
take
- Specified by:
takein interfaceWatchService- Throws:
InterruptedException
-
setEvents
监听事件列表,见:StandardWatchEventKinds- Parameters:
kinds- 事件列表- Returns:
- this
-
setEvents
监听事件列表,见:StandardWatchEventKinds- Parameters:
events- 事件列表- Returns:
- this
-
setModifiers
设置监听选项,例如监听频率等,可设置项包括:1、com.sun.nio.file.StandardWatchEventKinds 2、com.sun.nio.file.SensitivityWatchEventModifier
- Parameters:
modifiers- 监听选项,例如监听频率等- Returns:
- this
-
register
注册单一的监听- Parameters:
watchable- 可注册对象,如Path- Returns:
WatchKey,如果为null,表示注册失败- See Also:
-
registerPath
递归将指定路径加入到监听中 如果提供的是目录,则监听目录本身和目录下的目录和文件,深度取决于maxDepth- Parameters:
path- 路径maxDepth- 递归下层目录的最大深度- Returns:
- this
-
watch
执行事件获取并处理WatchEvent.context()是实际操作的文件或目录的相对监听路径的Path,非绝对路径WatchKey.watchable()是监听的Path 此方法调用后阻塞线程,直到触发监听事件,执行后退出,无循环执行操作- Parameters:
watcher-WatcherwatchFilter- 监听过滤接口,通过实现此接口过滤掉不需要监听的情况,Predicate.test(Object)为true保留,null表示不过滤
-
watch
执行事件获取并处理WatchEvent.context()是实际操作的文件或目录的相对监听路径的Path,非绝对路径WatchKey.watchable()是监听的Path 此方法调用后阻塞线程,直到触发监听事件,执行后退出,无循环执行操作- Parameters:
action- 监听回调函数,实现此函数接口用于处理WatchEvent事件
-
watch
执行事件获取并处理WatchEvent.context()是实际操作的文件或目录的相对监听路径的Path,非绝对路径WatchKey.watchable()是监听的Path 此方法调用后阻塞线程,直到触发监听事件,执行后退出,无循环执行操作- Parameters:
action- 监听回调函数,实现此函数接口用于处理WatchEvent事件watchFilter- 监听过滤接口,通过实现此接口过滤掉不需要监听的情况,Predicate.test(Object)为true保留,null表示不过滤
-