Tailer

2023-02-02

java

这个世界上没有无用的齿轮,也只有齿轮本身能决定自己的用途。——《嫌疑犯X的献身》

分享一个小工具,Hutool里有一个Tailer文件跟随很好用

文档:https://hutool.cn/docs/#/core/IO/文件/文件跟随-Tailer

由来

有时候我们要启动一个线程实时“监控”文件的变化,比如有新内容写出到文件时,我们可以及时打印出来,这个功能非常类似于Linux下的tail -f命令。

使用

1
2
Tailer tailer = new Tailer(FileUtil.file("f:/test/test.log"), Tailer.CONSOLE_HANDLER, 2);
tailer.start();

其中Tailer.CONSOLE_HANDLER表示文件新增内容默认输出到控制台。

1
2
3
4
5
6
7
8
9
10
11
12
/**
* 命令行打印的行处理器
*
* @author looly
* @since 4.5.2
*/
public static class ConsoleLineHandler implements LineHandler {
@Override
public void handle(String line) {
Console.log(line);
}
}

我们也可以实现自己的LineHandler来处理每一行数据。

注意 此方法会阻塞当前线程