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

This commit is contained in:
hellozrh 2023-06-05 09:33:07 +08:00
parent 3603fdaeea
commit 2e1ed51f28
3 changed files with 19 additions and 2 deletions

View File

@ -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);

View File

@ -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);
}
/**

View File

@ -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();
}
}