public class WatchMonitor extends WatchServer
监听器可监听目录或文件
如果监听的Path不存在,则递归创建空目录然后监听此空目录
递归监听目录时,并不会监听新创建的目录
Thread.State, Thread.UncaughtExceptionHandlerevents, isClosedMAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY| 构造器和说明 |
|---|
WatchMonitor(File file,
WatchEvent.Kind<?>... events)
构造
|
WatchMonitor(Path path,
int maxDepth,
WatchEvent.Kind<?>... events)
构造
例如设置: maxDepth <= 1 表示只监听当前目录 maxDepth = 2 表示监听当前目录以及下层目录 maxDepth = 3 表示监听当前目录以及下两层 |
WatchMonitor(Path path,
WatchEvent.Kind<?>... events)
构造
|
WatchMonitor(String path,
WatchEvent.Kind<?>... events)
构造
|
| 限定符和类型 | 方法和说明 |
|---|---|
void |
init()
初始化
初始化包括: 1、解析传入的路径,判断其为目录还是文件 2、创建 WatchService 对象
|
static WatchMonitor |
of(File file,
int maxDepth,
WatchEvent.Kind<?>... events)
创建并初始化监听
|
static WatchMonitor |
of(File file,
WatchEvent.Kind<?>... events)
创建并初始化监听
|
static WatchMonitor |
of(Path path,
int maxDepth,
WatchEvent.Kind<?>... events)
创建并初始化监听
|
static WatchMonitor |
of(Path path,
WatchEvent.Kind<?>... events)
创建并初始化监听
|
static WatchMonitor |
of(String path,
int maxDepth,
WatchEvent.Kind<?>... events)
创建并初始化监听
|
static WatchMonitor |
of(String path,
WatchEvent.Kind<?>... events)
创建并初始化监听
|
static WatchMonitor |
of(URI uri,
int maxDepth,
WatchEvent.Kind<?>... events)
创建并初始化监听
|
static WatchMonitor |
of(URI uri,
WatchEvent.Kind<?>... events)
创建并初始化监听
|
static WatchMonitor |
of(URL url,
int maxDepth,
WatchEvent.Kind<?>... events)
创建并初始化监听
|
static WatchMonitor |
of(URL url,
WatchEvent.Kind<?>... events)
创建并初始化监听
|
static WatchMonitor |
ofAll(File file,
Watcher watcher)
创建并初始化监听,监听所有事件
|
static WatchMonitor |
ofAll(Path path,
Watcher watcher)
创建并初始化监听,监听所有事件
|
static WatchMonitor |
ofAll(String path,
Watcher watcher)
创建并初始化监听,监听所有事件
|
static WatchMonitor |
ofAll(URI uri,
Watcher watcher)
创建并初始化监听,监听所有事件
|
static WatchMonitor |
ofAll(URL url,
Watcher watcher)
创建并初始化监听,监听所有事件
|
void |
run() |
WatchMonitor |
setMaxDepth(int maxDepth)
当监听目录时,监听目录的最大深度
当设置值为1(或小于1)时,表示不递归监听子目录 例如设置: maxDepth <= 1 表示只监听当前目录 maxDepth = 2 表示监听当前目录以及下层目录 maxDepth = 3 表示监听当前目录以及下层 |
WatchMonitor |
setWatcher(Watcher watcher)
设置监听
多个监听请使用 WatcherChain |
void |
watch()
开始监听事件,阻塞当前进程
|
void |
watch(Watcher watcher)
开始监听事件,阻塞当前进程
|
close, registerPath, setModifiers, watch, watchactiveCount, checkAccess, clone, countStackFrames, currentThread, destroy, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, stop, suspend, toString, yieldpublic WatchMonitor(File file, WatchEvent.Kind<?>... events)
file - 文件events - 监听的事件列表public WatchMonitor(String path, WatchEvent.Kind<?>... events)
path - 字符串路径events - 监听的事件列表public WatchMonitor(Path path, WatchEvent.Kind<?>... events)
path - 字符串路径events - 监听事件列表public WatchMonitor(Path path, int maxDepth, WatchEvent.Kind<?>... events)
maxDepth <= 1 表示只监听当前目录 maxDepth = 2 表示监听当前目录以及下层目录 maxDepth = 3 表示监听当前目录以及下两层
path - 字符串路径maxDepth - 递归目录的最大深度,当小于2时不递归下层目录events - 监听事件列表public static WatchMonitor of(URL url, WatchEvent.Kind<?>... events)
url - URLevents - 监听的事件列表,见WatchKindpublic static WatchMonitor of(URL url, int maxDepth, WatchEvent.Kind<?>... events)
url - URLevents - 监听的事件列表,见WatchKindmaxDepth - 当监听目录时,监听目录的最大深度,当设置值为1(或小于1)时,表示不递归监听子目录public static WatchMonitor of(URI uri, WatchEvent.Kind<?>... events)
uri - URIevents - 监听的事件列表,见WatchKindpublic static WatchMonitor of(URI uri, int maxDepth, WatchEvent.Kind<?>... events)
uri - URIevents - 监听的事件列表,见WatchKindmaxDepth - 当监听目录时,监听目录的最大深度,当设置值为1(或小于1)时,表示不递归监听子目录public static WatchMonitor of(File file, WatchEvent.Kind<?>... events)
file - 文件events - 监听的事件列表,见WatchKindpublic static WatchMonitor of(File file, int maxDepth, WatchEvent.Kind<?>... events)
file - 文件events - 监听的事件列表,见WatchKindmaxDepth - 当监听目录时,监听目录的最大深度,当设置值为1(或小于1)时,表示不递归监听子目录public static WatchMonitor of(String path, WatchEvent.Kind<?>... events)
path - 路径events - 监听的事件列表,见WatchKindpublic static WatchMonitor of(String path, int maxDepth, WatchEvent.Kind<?>... events)
path - 路径events - 监听的事件列表,见WatchKindmaxDepth - 当监听目录时,监听目录的最大深度,当设置值为1(或小于1)时,表示不递归监听子目录public static WatchMonitor of(Path path, WatchEvent.Kind<?>... events)
path - 路径events - 监听事件列表,见WatchKindpublic static WatchMonitor of(Path path, int maxDepth, WatchEvent.Kind<?>... events)
path - 路径events - 监听事件列表,见WatchKindmaxDepth - 当监听目录时,监听目录的最大深度,当设置值为1(或小于1)时,表示不递归监听子目录public static WatchMonitor ofAll(URI uri, Watcher watcher)
uri - URIwatcher - Watcherpublic static WatchMonitor ofAll(URL url, Watcher watcher)
url - URLwatcher - Watcherpublic static WatchMonitor ofAll(File file, Watcher watcher)
file - 被监听文件watcher - Watcherpublic static WatchMonitor ofAll(String path, Watcher watcher)
path - 路径watcher - Watcherpublic static WatchMonitor ofAll(Path path, Watcher watcher)
path - 路径watcher - Watcherpublic void init()
throws WatchException
1、解析传入的路径,判断其为目录还是文件
2、创建WatchService 对象
init 在类中 WatchServerWatchException - 监听异常,IO异常时抛出此异常public WatchMonitor setWatcher(Watcher watcher)
WatcherChainwatcher - 监听public void watch()
public void watch(Watcher watcher) throws WatchException
watcher - 监听WatchException - 监听异常,如果监听关闭抛出此异常public WatchMonitor setMaxDepth(int maxDepth)
maxDepth <= 1 表示只监听当前目录 maxDepth = 2 表示监听当前目录以及下层目录 maxDepth = 3 表示监听当前目录以及下层
maxDepth - 最大深度,当设置值为1(或小于1)时,表示不递归监听子目录,监听所有子目录请传Integer.MAX_VALUECopyright © 2023. All rights reserved.