diff --git a/CHANGELOG.md b/CHANGELOG.md index 4b2e0f56c..3fec05bde 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,6 +18,7 @@ * 【core 】 修复UrlPath空白path多/问题(issue#I49KAL@Gitee) * 【core 】 修复ServletUtil写出文件时未添加双引号导致逗号等特殊符号引起的问题(issue#I4P1BF@Gitee) * 【core 】 NumberUtil增加equals重载解决long传入判断问题(pr#2064@Github) +* 【core 】 修复CsvParser行号有误问题(pr#2065@Github) ------------------------------------------------------------------------------------------------------------- # 5.7.18 (2021-12-25) diff --git a/hutool-core/src/test/java/cn/hutool/core/text/csv/CsvReaderTest.java b/hutool-core/src/test/java/cn/hutool/core/text/csv/CsvReaderTest.java index 44995e88b..291f8b26f 100644 --- a/hutool-core/src/test/java/cn/hutool/core/text/csv/CsvReaderTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/text/csv/CsvReaderTest.java @@ -10,6 +10,7 @@ import lombok.Data; import org.junit.Assert; import org.junit.Test; import org.junit.Ignore; + import java.util.List; import java.util.Map; @@ -26,7 +27,7 @@ public class CsvReaderTest { } @Test - public void readMapListTest(){ + public void readMapListTest() { final CsvReader reader = CsvUtil.getReader(); final List> result = reader.readMapList( ResourceUtil.getUtf8Reader("test_bean.csv")); @@ -48,7 +49,7 @@ public class CsvReaderTest { } @Test - public void readAliasMapListTest(){ + public void readAliasMapListTest() { final CsvReadConfig csvReadConfig = CsvReadConfig.defaultConfig(); csvReadConfig.addHeaderAlias("姓名", "name"); @@ -73,7 +74,7 @@ public class CsvReaderTest { } @Test - public void readBeanListTest(){ + public void readBeanListTest() { final CsvReader reader = CsvUtil.getReader(); final List result = reader.read( ResourceUtil.getUtf8Reader("test_bean.csv"), TestBean.class); @@ -95,7 +96,7 @@ public class CsvReaderTest { } @Data - private static class TestBean{ + private static class TestBean { @Alias("姓名") private String name; private String gender; @@ -105,7 +106,7 @@ public class CsvReaderTest { @Test @Ignore - public void readTest2(){ + public void readTest2() { final CsvReader reader = CsvUtil.getReader(); final CsvData read = reader.read(FileUtil.file("d:/test/test.csv")); for (CsvRow strings : read) { @@ -115,7 +116,7 @@ public class CsvReaderTest { @Test @Ignore - public void readTest3(){ + public void readTest3() { final CsvReadConfig csvReadConfig = CsvReadConfig.defaultConfig(); csvReadConfig.setContainsHeader(true); final CsvReader reader = CsvUtil.getReader(csvReadConfig); @@ -126,14 +127,15 @@ public class CsvReaderTest { } @Test - public void lineNoTest(){ + public void lineNoTest() { CsvReader reader = new CsvReader(); CsvData data = reader.read(ResourceUtil.getReader("test_lines.csv", CharsetUtil.CHARSET_UTF_8)); Assert.assertEquals(1, data.getRow(0).getOriginalLineNumber()); Assert.assertEquals("a,b,c,d", CollUtil.join(data.getRow(0), ",")); Assert.assertEquals(4, data.getRow(2).getOriginalLineNumber()); - Assert.assertEquals("q,w,e,r,我是一段\n带换行的内容", CollUtil.join(data.getRow(2), ",").replace("\r", "")); + Assert.assertEquals("q,w,e,r,我是一段\n带换行的内容", + CollUtil.join(data.getRow(2), ",").replace("\r", "")); // 文件中第3行数据,对应原始行号是6(从0开始) Assert.assertEquals(6, data.getRow(3).getOriginalLineNumber()); @@ -141,7 +143,7 @@ public class CsvReaderTest { } @Test - public void lineLimitTest(){ + public void lineLimitTest() { // 从原始第2行开始读取 CsvReader reader = new CsvReader(CsvReadConfig.defaultConfig().setBeginLineNo(2)); CsvData data = reader.read(ResourceUtil.getReader("test_lines.csv", CharsetUtil.CHARSET_UTF_8)); @@ -150,7 +152,8 @@ public class CsvReaderTest { Assert.assertEquals("1,2,3,4", CollUtil.join(data.getRow(0), ",")); Assert.assertEquals(4, data.getRow(1).getOriginalLineNumber()); - Assert.assertEquals("q,w,e,r,我是一段\n带换行的内容", CollUtil.join(data.getRow(1), ",").replace("\r", "")); + Assert.assertEquals("q,w,e,r,我是一段\n带换行的内容", + CollUtil.join(data.getRow(1), ",").replace("\r", "")); // 文件中第3行数据,对应原始行号是6(从0开始) Assert.assertEquals(6, data.getRow(2).getOriginalLineNumber()); @@ -158,13 +161,14 @@ public class CsvReaderTest { } @Test - public void lineLimitWithHeaderTest(){ + public void lineLimitWithHeaderTest() { // 从原始第2行开始读取 CsvReader reader = new CsvReader(CsvReadConfig.defaultConfig().setBeginLineNo(2).setContainsHeader(true)); CsvData data = reader.read(ResourceUtil.getReader("test_lines.csv", CharsetUtil.CHARSET_UTF_8)); Assert.assertEquals(4, data.getRow(0).getOriginalLineNumber()); - Assert.assertEquals("q,w,e,r,我是一段\n带换行的内容", CollUtil.join(data.getRow(0), ",").replace("\r", "")); + Assert.assertEquals("q,w,e,r,我是一段\n带换行的内容", + CollUtil.join(data.getRow(0), ",").replace("\r", "")); // 文件中第3行数据,对应原始行号是6(从0开始) Assert.assertEquals(6, data.getRow(1).getOriginalLineNumber()); @@ -172,7 +176,7 @@ public class CsvReaderTest { } @Test - public void customConfigTest(){ + public void customConfigTest() { final CsvReader reader = CsvUtil.getReader( CsvReadConfig.defaultConfig() .setTextDelimiter('\'') @@ -185,7 +189,7 @@ public class CsvReaderTest { } @Test - public void readDisableCommentTest(){ + public void readDisableCommentTest() { final CsvReader reader = CsvUtil.getReader(CsvReadConfig.defaultConfig().disableComment()); final CsvData read = reader.read(ResourceUtil.getUtf8Reader("test.csv")); final CsvRow row = read.getRow(0); @@ -194,7 +198,7 @@ public class CsvReaderTest { @Test @Ignore - public void streamTest(){ + public void streamTest() { final CsvReader reader = CsvUtil.getReader(ResourceUtil.getUtf8Reader("test_bean.csv")); reader.stream().limit(2).forEach(Console::log); }