From a9bd7c3bb414093de2d316454866b4b69b2fa531 Mon Sep 17 00:00:00 2001 From: looly Date: Sun, 12 Dec 2021 09:58:43 +0800 Subject: [PATCH] fix line bug --- CHANGELOG.md | 3 ++- .../main/java/cn/hutool/core/io/file/LineReadWatcher.java | 4 ++-- .../src/test/java/cn/hutool/core/io/file/TailerTest.java | 6 +++--- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5733079e3..4b942835d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,10 +3,11 @@ ------------------------------------------------------------------------------------------------------------- -# 5.7.18 (2021-12-09) +# 5.7.18 (2021-12-12) ### 🐣新特性 ### 🐞Bug修复 +* 【core 】 LineReadWatcher#onModify文件清空判断问题(issue#2013@Github) ------------------------------------------------------------------------------------------------------------- # 5.7.17 (2021-12-09) diff --git a/hutool-core/src/main/java/cn/hutool/core/io/file/LineReadWatcher.java b/hutool-core/src/main/java/cn/hutool/core/io/file/LineReadWatcher.java index 7178e665f..1c9e50043 100644 --- a/hutool-core/src/main/java/cn/hutool/core/io/file/LineReadWatcher.java +++ b/hutool-core/src/main/java/cn/hutool/core/io/file/LineReadWatcher.java @@ -50,11 +50,11 @@ public class LineReadWatcher extends SimpleWatcher implements Runnable { try { final long currentLength = randomAccessFile.length(); final long position = randomAccessFile.getFilePointer(); - if (0 == currentLength || position == currentLength) { + if (position == currentLength) { // 内容长度不变时忽略此次事件 return; } else if (currentLength < position) { - // 如果内容变短,说明文件做了删改,回到内容末尾 + // 如果内容变短或变0,说明文件做了删改或清空,回到内容末尾或0 randomAccessFile.seek(currentLength); return; } diff --git a/hutool-core/src/test/java/cn/hutool/core/io/file/TailerTest.java b/hutool-core/src/test/java/cn/hutool/core/io/file/TailerTest.java index 584186003..de2bedd48 100644 --- a/hutool-core/src/test/java/cn/hutool/core/io/file/TailerTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/io/file/TailerTest.java @@ -7,13 +7,13 @@ import cn.hutool.core.io.FileUtil; import cn.hutool.core.util.CharsetUtil; public class TailerTest { - + @Test @Ignore public void tailTest() { - FileUtil.tail(FileUtil.file("e:/tail.txt"), CharsetUtil.CHARSET_GBK); + FileUtil.tail(FileUtil.file("d:/test/tail.txt"), CharsetUtil.CHARSET_GBK); } - + @Test @Ignore public void tailWithLinesTest() {