BufferedWriter bw = new BufferedWriter(new FileWriter("test.csv", true));
bw.append(System.lineSeparator());
bw.append("Text after writing"));
上面的代码将产生以下结果:
Text already in file before writing
Text after writing
没有System.lineSeparator(),它将变成:
Text already in file before writingText after writing
我想要的是:
Text already in file before writing
Text after writing
我也试过\n 和 bw.newLine() ,但都给出了相同的结果。为什么会留下 2 行,如何避免?
最佳答案
刚刚尝试了您的代码,它按预期工作。
代码:
try (BufferedWriter bw = new BufferedWriter(new FileWriter("test.csv", true))) {
bw.append("Text after writing");
bw.append(System.lineSeparator());
} catch (IOException e) {
e.printStackTrace();
}
test.csv 之前:
1. Text already in file before writing
test.csv 之后:
1. Text already in file before writing
2. Text after writing
可能您正在编辑的文件已经以新行结尾。您可以考虑在附加之前检查它。
注意:使用了 try-with-resource为了简化代码。
注意:测试于:jre1.8.0_77,Win7(x64)
关于java - BufferedWriter 行分隔符变为双行分隔符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40787795/