0 Star 2 Fork 0

风雨bu改 / PDFileWatch

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
README.md 3.21 KB
一键复制 编辑 原始数据 按行查看 历史
风雨bu改 提交于 2022-04-07 14:24 . 修改注释和说明

Icon

PDFileWatch

java library JDK 14 Gradle 6.5 Apache 2

-- Java Doc --


简介

java 文件监听服务库,用与快速创建监听文件和目录变化的服务

快速使用

监听单个文件

public class Main {
    public static void main(String[] arg) {
        SendWatch sendWatch;
        SendLoop loop;

        try {
            // 构建监听服务
            sendWatch = PDFileWatch.sendWatch().build();

            // 注册,监听单个文件的所有事件,返回本次监听的实例
            // WaServer.KINDS_ALL 是一个数组,包含所有的 WatchEvent.Kind 事件,除了 OVERFLOW
            loop = sendWatch.watchFil(Path.of("a.tmp"), WaServer.KINDS_ALL);

            // 监听创建事件回调,允许多个回调按顺序触发,内部有一个回调链
            loop.addCall(StandardWatchEventKinds.ENTRY_CREATE, (event, path) -> {
                // 事件触发处理
                // 允许回调链向下继续触发
                return LoopState.WATCH_NEXT;
            });

            // 监听默认回调,如果当前触发的事件没有注册对应的回调进行处理,则会触发该回调链
            loop.addDefaCall((event, path) -> {
                // 事件触发回调
                // 允许继续触发
                return LoopState.WATCH_NEXT;
            });

            // 不需要继续监听时记得关闭当前监听实例
            loop.close();
            // 不需要进行任何文件监听时记得关掉该服务
            sendWatch.close();
        } catch ( IOException e ) {
            e.printStackTrace();
        }
    }
}

内部已有并发处理,启动服务后会有一个线程再后面负责监听系统传来的变化,所以在不需要时记得 close() 服务和监听对象

导入

请导入其 jar 文件,文件在 发行版 或项目的 jar 文件夹下可以找到

PDFileWatch_bin.jar 为包含了依赖库的包,PDFileWatch.jar 为不包含依赖库的包

发行版中可以看到全部版本
项目下的 jar 文件夹是当前最新的每夜版

依赖的同系列的项目

可通过 WIKIjava doc 或者 测试类 查看示例

测试类建议由 RunTestSendWatchTest 测试类开始看

分支说明

dev-master:当前的开发分支,可以拿到最新的每夜版 jar

releases:当前发布分支,稳定版的源码


提供bug反馈或建议

Java
1
https://gitee.com/fybug/PDFileWatch.git
git@gitee.com:fybug/PDFileWatch.git
fybug
PDFileWatch
PDFileWatch
master

搜索帮助