Package org.aoju.bus.core.io.watcher
Class WatchServer
java.lang.Object
java.lang.Thread
org.aoju.bus.core.io.watcher.WatchServer
- All Implemented Interfaces:
Closeable,Serializable,AutoCloseable,Runnable
- Direct Known Subclasses:
WatchMonitor
文件监听服务,此服务可以同时监听多个路径
- Since:
- Java 17+
- Author:
- Kimi Liu
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class java.lang.Thread
Thread.Builder, Thread.State, Thread.UncaughtExceptionHandler -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected WatchEvent.Kind<?>[]监听事件列表protected boolean监听是否已经关闭Fields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()关闭监听voidinit()初始化
初始化包括:voidregisterPath(Path path, int maxDepth) 将指定路径加入到监听中voidsetModifiers(WatchEvent.Modifier[] modifiers) 设置监听选项,例如监听频率等,可设置项包括:voidwatch(Watcher watcher, Predicate<WatchEvent<?>> watchFilter) 执行事件获取并处理voidwatch(XBiConsumer<WatchEvent<?>, Path> action, Predicate<WatchEvent<?>> watchFilter) 执行事件获取并处理Methods inherited from class java.lang.Thread
activeCount, checkAccess, clone, currentThread, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, isVirtual, join, join, join, join, ofPlatform, ofVirtual, onSpinWait, resume, run, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, sleep, start, startVirtualThread, stop, suspend, threadId, toString, yield
-
Field Details
-
events
监听事件列表 -
isClosed
protected boolean isClosed监听是否已经关闭
-
-
Constructor Details
-
WatchServer
public WatchServer()
-
-
Method Details
-
init
初始化
初始化包括:1、解析传入的路径,判断其为目录还是文件 2、创建
WatchService对象- Throws:
InternalException- 监听异常,IO异常时抛出此异常
-
setModifiers
设置监听选项,例如监听频率等,可设置项包括:1、com.sun.nio.file.StandardWatchEventKinds 2、com.sun.nio.file.SensitivityWatchEventModifier
- Parameters:
modifiers- 监听选项,例如监听频率等
-
registerPath
将指定路径加入到监听中- Parameters:
path- 路径maxDepth- 递归下层目录的最大深度
-
watch
执行事件获取并处理- Parameters:
action- 监听回调函数,实现此函数接口用于处理WatchEvent事件watchFilter- 监听过滤接口,通过实现此接口过滤掉不需要监听的情况,Predicate.test(Object)为true保留,null表示不过滤
-
watch
执行事件获取并处理- Parameters:
watcher-WatcherwatchFilter- 监听过滤接口,通过实现此接口过滤掉不需要监听的情况,Predicate.test(Object)为true保留,null表示不过滤
-
close
public void close()关闭监听- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable
-