java实现监听文件
监听文件是否添加
当前项目需要读取日志信息,向监听日志更新的动态。
用线程的方式来监控log日志文件
我们首先要了解以下这三个类
1、Tailer类
Tailer类的主要作用是采用线程的方式去监控日志文件的内容,简单的理解就是文件内容的跟随器,当文件内容发生变化时它就能捕获到新增内容的信息,可以理解为我们在linux服务器中常用的“tail -f”命令。
2、TailerListener类
TailerListener类是一个接口类,由TailerListenerAdapter类去实现这个类。本文来源于公众号:【Java学习提升】 专注于Java领域技术分享,Java知识体系学习、分享面试经验,让我们结伴而行,共同成长!
3、TailerListenerAdapter类
TailerListenerAdapter类可以捕获到日志新增加的内容,我们的业务代码会写在这里进行相关逻辑处理。
三个都是 org.apache.commons 中的类
测试代码:
public static void main(String[] args) {TailerListener listener = new TailerListenerAdapter() {@Overridepublic void handle(String line) {try {log.info("日志新增的内容为:" + line);} catch (Exception e) {log.error("发生异常:" + e.getMessage());}}};Tailer tailer = new Tailer(new File(需要监听的文件地址),listener, Integer.valueOf(1000), true);tailer.run();}
java实现监听文件相关推荐
- Java实现监听文件变化的三种方法,推荐第三种
背景 在研究规则引擎时,如果规则以文件的形式存储,那么就需要监听指定的目录或文件来感知规则是否变化,进而进行加载.当然,在其他业务场景下,比如想实现配置文件的动态加载.日志文件的监听.FTP文件变动监 ...
- Java实时监听文件夹,实现实时监听微信接收的文件,去掉文件的只读属性
前言 众所周知,小而美软件每次更新都不干人事啊.上次忘了哪个版本更新的,接收到的文件一律是只读文件,虽然只需要右键属性把只读勾选去掉就行,但是每次接收了个文件都要这么做属实是有点麻烦.所以就自己写了个 ...
- java 接口文件夹_Java NIO.2 使用Path接口来监听文件、文件夹变化
Java7对NIO进行了大的改进,新增了许多功能: •对文件系统的访问提供了全面的支持 •提供了基于异步Channel的IO 这些新增的IO功能简称为 NIO.2,依然在java.nio包下. 早期的 ...
- Java 使用Tailer类监听文件
线程创建的三种方式: FileDataListener listener = new FileDataListener(path,this); //使用单线程池线程监听文件 ...
- JAVA实现监听U盘插入 扫描文件
JAVA实现监听U盘插入 想用Java实现监听USB端口是否有移动设备插入,然后操作移动设备内的文件.网站查找资料后发现有个jsr-80的项目,下面先介绍一下什么是JSR:JSR是Java Speci ...
- java jmenu 监听_Java中用得比较顺手的事件监听
第一次听说监听是三年前,做一个webGIS的项目,当时对Listener的印象就是个"监视器",监视着界面的一举一动,一有动静就触发对应的响应. 一.概述 通过对界面的某一或某些操 ...
- JDK的一个Bug,监听文件变更要小心了
背景 在某些业务场景下,我们需要自己实现文件内容变更监听的功能,比如:监听某个文件是否发生变更,当变更时重新加载文件的内容. 看似比较简单的一个功能,但如果在某些JDK版本下,可能会出现意想不到的Bu ...
- Hutool操作和监听文件
目录 1 文件监听简单使用 1.1 WatchMonitor 1.2 内部应用 1.3 监听指定事件 1.4 监听全部事件 1.5 延迟处理监听事件 2 文件的读取 3 文件的写入 4 文件追加 5 ...
- hutool工具包Tailer类监听文件的bug
使用hutool工具包Tailer类监听文件内容时,如果文件忽然被清空后在重新写入,此时无法监听到文件第一行数据 解决方法: 复写cn.hutool.core.io.file包下LineReadWat ...
最新文章
- 写给刚入门的前端工程师的前后端交互指南
- 【数据结构-查找】1.通俗易懂讲解 —— 顺序-折半-分块查找
- 蓝桥杯java第六届决赛第一题--分机号
- access找不到输入表或者dual_在Access窗体中显示指定路径的图片
- 模板:拓展kmp(Z函数)
- 利用redis保存验证码并设置过期时间
- JDK 13:VM.events已添加到jcmd
- 变通实现微服务的per request以提高IO效率(三)
- 在linux搭性能测试环境,性能测试学习第七天-----JMeter之linux环境部署篇
- Omnibus test
- HDU2551 竹青遍野【数学计算+水题】
- DJ 算法的队列优先优化
- ubuntu服务器无法运行chromedriver解决方法(转)
- webrtc2sip项目说明
- ActiveMQ入门系列三:发布/订阅模式
- ValueError: continuous format is not supported
- Inflate使用小结
- macOS FileVault2 command
- 与二次元老婆邂逅的游戏的创建过程(一)
- 基于BP神经网络的PID控制,神经网络算法pid控制
热门文章
- 红米note2能刷机没显示无服务器,红米Note2刷机之后一直停留在开机界面修复教程...
- 用 Python 实现股票指数移动平均线
- 如何解决Myeclipse不能自动编译
- 【运筹学】线性规划 最优解分析 ( 唯一最优解 | 无穷多最优解 | 无界解 | 无可行解 | 迭代范围 | 求解步骤 )
- *1 计算机基础和操作系统基础及几大协议
- 动态加载script 加载完成回调事件
- [人物]一个预言家的命运:忽悠了马云的“骗子”,风口上的先知
- [C++]C++中的延时方法总结
- 力扣算法学习计划打卡:第一天
- java对接快递100追踪物流信息