From 2e1ed51f287542c7008a92a3b3f980e870c906d0 Mon Sep 17 00:00:00 2001 From: hellozrh <455741807@qq.com> Date: Mon, 5 Jun 2023 09:33:07 +0800 Subject: [PATCH 1/2] =?UTF-8?q?CsvWriter=E5=A6=82=E6=9E=9C=E5=BC=80?= =?UTF-8?q?=E5=90=AF=E4=BA=86append=3Dtrue=EF=BC=8C=E9=BB=98=E8=AE=A4?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E5=BC=80=E5=90=AFendingLineBreak=3Dtrue?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/cn/hutool/core/io/file/FileWriter.java | 1 + .../java/cn/hutool/core/text/csv/CsvWriter.java | 4 ++-- .../cn/hutool/core/text/csv/CsvWriterTest.java | 16 ++++++++++++++++ 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/hutool-core/src/main/java/cn/hutool/core/io/file/FileWriter.java b/hutool-core/src/main/java/cn/hutool/core/io/file/FileWriter.java index f07fbd0ad..398c26707 100644 --- a/hutool-core/src/main/java/cn/hutool/core/io/file/FileWriter.java +++ b/hutool-core/src/main/java/cn/hutool/core/io/file/FileWriter.java @@ -376,6 +376,7 @@ public class FileWriter extends FileWrapper { */ public BufferedWriter getWriter(boolean isAppend) throws IORuntimeException { try { + return new BufferedWriter(new OutputStreamWriter(new FileOutputStream(FileUtil.touch(file), isAppend), charset)); } catch (Exception e) { throw new IORuntimeException(e); diff --git a/hutool-core/src/main/java/cn/hutool/core/text/csv/CsvWriter.java b/hutool-core/src/main/java/cn/hutool/core/text/csv/CsvWriter.java index 5dbe1f232..314249103 100755 --- a/hutool-core/src/main/java/cn/hutool/core/text/csv/CsvWriter.java +++ b/hutool-core/src/main/java/cn/hutool/core/text/csv/CsvWriter.java @@ -130,11 +130,11 @@ public final class CsvWriter implements Closeable, Flushable, Serializable { * * @param file CSV文件 * @param charset 编码 - * @param isAppend 是否追加 + * @param isAppend 是否追加,append模式下,endingLineBreak自动设置为true * @param config 写出配置,null则使用默认配置 */ public CsvWriter(File file, Charset charset, boolean isAppend, CsvWriteConfig config) { - this(FileUtil.getWriter(file, charset, isAppend), config); + this(FileUtil.getWriter(file, charset, isAppend), isAppend?(config==null?CsvWriteConfig.defaultConfig().setEndingLineBreak(true):config.setEndingLineBreak(true)):config); } /** diff --git a/hutool-core/src/test/java/cn/hutool/core/text/csv/CsvWriterTest.java b/hutool-core/src/test/java/cn/hutool/core/text/csv/CsvWriterTest.java index ed4416209..980a33749 100755 --- a/hutool-core/src/test/java/cn/hutool/core/text/csv/CsvWriterTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/text/csv/CsvWriterTest.java @@ -44,4 +44,20 @@ public class CsvWriterTest { } writer.close(); } + + @Test + @Ignore + public void writeAppendTest(){ + final CsvWriter writer = CsvUtil.getWriter( + FileUtil.file("d:/test/writeAppendTest.csv"), + CharsetUtil.CHARSET_GBK, true); + + writer.writeHeaderLine("name", "gender", "address"); + writer.writeLine("张三", "男", "XX市XX区"); + writer.writeLine("李四", "男", "XX市XX区,01号"); + + writer.writeLine("张三2", "男", "XX市XX区"); + writer.writeLine("李四2", "男", "XX市XX区,01号"); + writer.close(); + } } From 11b854acb39af4406ef4b95e1fe42ff075289cda Mon Sep 17 00:00:00 2001 From: hellozrh <455741807@qq.com> Date: Mon, 5 Jun 2023 09:42:53 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=B8=85=E6=8E=89=E5=A4=9A=E4=BD=99?= =?UTF-8?q?=E7=9A=84=E7=A9=BA=E8=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hutool-core/src/main/java/cn/hutool/core/io/file/FileWriter.java | 1 - 1 file changed, 1 deletion(-) diff --git a/hutool-core/src/main/java/cn/hutool/core/io/file/FileWriter.java b/hutool-core/src/main/java/cn/hutool/core/io/file/FileWriter.java index 398c26707..f07fbd0ad 100644 --- a/hutool-core/src/main/java/cn/hutool/core/io/file/FileWriter.java +++ b/hutool-core/src/main/java/cn/hutool/core/io/file/FileWriter.java @@ -376,7 +376,6 @@ public class FileWriter extends FileWrapper { */ public BufferedWriter getWriter(boolean isAppend) throws IORuntimeException { try { - return new BufferedWriter(new OutputStreamWriter(new FileOutputStream(FileUtil.touch(file), isAppend), charset)); } catch (Exception e) { throw new IORuntimeException(e);