CsvWriter如果开启了append=true,默认自动开启endingLineBreak=true

This commit is contained in:
Looly 2023-06-06 06:20:59 +08:00
parent af4049d111
commit f63acc6058
2 changed files with 9 additions and 6 deletions

View File

@ -58,7 +58,7 @@ public final class CsvWriter implements Closeable, Flushable, Serializable {
*/ */
private boolean isFirstLine = true; private boolean isFirstLine = true;
// --------------------------------------------------------------------------------------------------- Constructor start // region ----- Constructors
/** /**
* 构造覆盖已有文件如果存在默认编码UTF-8 * 构造覆盖已有文件如果存在默认编码UTF-8
@ -141,7 +141,10 @@ public final class CsvWriter implements Closeable, Flushable, Serializable {
* @param config 写出配置null则使用默认配置 * @param config 写出配置null则使用默认配置
*/ */
public CsvWriter(final File file, final Charset charset, final boolean isAppend, final CsvWriteConfig config) { public CsvWriter(final File file, final Charset charset, final boolean isAppend, final CsvWriteConfig config) {
this(FileUtil.getWriter(file, charset, isAppend), isAppend?(config==null?CsvWriteConfig.defaultConfig().setEndingLineBreak(true):config.setEndingLineBreak(true)):config); this(FileUtil.getWriter(file, charset, isAppend),
// https://gitee.com/dromara/hutool/pulls/1011
isAppend?(config==null?CsvWriteConfig.defaultConfig().setEndingLineBreak(true)
:config.setEndingLineBreak(true)):config);
} }
/** /**
@ -163,7 +166,7 @@ public final class CsvWriter implements Closeable, Flushable, Serializable {
this.writer = (writer instanceof BufferedWriter) ? writer : new BufferedWriter(writer); this.writer = (writer instanceof BufferedWriter) ? writer : new BufferedWriter(writer);
this.config = ObjUtil.defaultIfNull(config, CsvWriteConfig::defaultConfig); this.config = ObjUtil.defaultIfNull(config, CsvWriteConfig::defaultConfig);
} }
// --------------------------------------------------------------------------------------------------- Constructor end // endregion
/** /**
* 设置是否始终使用文本分隔符文本包装符默认false按需添加 * 设置是否始终使用文本分隔符文本包装符默认false按需添加

View File

@ -37,7 +37,7 @@ public class CsvWriterTest {
final CsvWriter writer = CsvUtil.getWriter(fileName, CharsetUtil.UTF_8); final CsvWriter writer = CsvUtil.getWriter(fileName, CharsetUtil.UTF_8);
final List<String> list = new ArrayList<>(); final List<String> list = new ArrayList<>();
for (int i = 0; i < 10000; i++) { for (int i = 0; i < 10000; i++) {
list.add(i+""); list.add(String.valueOf(i));
} }
Console.log("{} : {}", fileName, list.size()); Console.log("{} : {}", fileName, list.size());
for (final String s : list) { for (final String s : list) {
@ -65,11 +65,11 @@ public class CsvWriterTest {
} }
@Test @Test
@Ignore @Disabled
public void writeAppendTest(){ public void writeAppendTest(){
final CsvWriter writer = CsvUtil.getWriter( final CsvWriter writer = CsvUtil.getWriter(
FileUtil.file("d:/test/writeAppendTest.csv"), FileUtil.file("d:/test/writeAppendTest.csv"),
CharsetUtil.CHARSET_GBK, true); CharsetUtil.GBK, true);
writer.writeHeaderLine("name", "gender", "address"); writer.writeHeaderLine("name", "gender", "address");
writer.writeLine("张三", "", "XX市XX区"); writer.writeLine("张三", "", "XX市XX区");