我已经遇到了一段时间的问题,并且已经测试了我能想到的所有可能性。不幸的是,这些可能性无效。
基本上,我正在尝试使用Java中的BufferedWriter写入.txt文件。我需要这个设置,以便我可以在每个数据之间有一条线。想象一下这是用Java生成的文本文件,它应该是这样的:
line1
line2
这是我的代码:
public static void main(String[] args) {
Path path = Paths.get("test.txt");
if (!Files.exists(path)) {
try {
Files.createFile(path);
} catch (IOException e) {
System.out.println("Error in creating test.txt! Read the stacktrace
below.");
e.printStackTrace();
}
}
Charset charset = Charset.forName("UTF-8");
try (BufferedWriter writer = Files.newBufferedWriter(path, charset)) {
String string = "line1";
writer.write(string, 0, string.length());
writer.newLine();
writer.newLine();
writer.flush();
} catch (IOException e) {
System.out.println("Unable to write to file! Read the StackTrace below.");
e.printStackTrace();
}
try (BufferedWriter writer = Files.newBufferedWriter(path, charset)) {
String string = "line2";
writer.write(string, 0, string.length());
writer.flush();
} catch (IOException e) {
System.out.println("Unable to write to file! Read the StackTrace below.");
e.printStackTrace();
}
}
这样的输出产生一个文本文件:
line2
现在,我知道我可以结合我的两个尝试/捕获,它会工作。但这只是一个测试表示;在我的实际代码中,我需要单独执行此操作,以便每当触发特定事件时我都可以写入.txt文件。
基本上,newLine()方法不是保存,除非我在它们之后直接写文字。
任何帮助都一如既往地受到赞赏!
答案 0 :(得分:1)
第二个BufferedWriter,或者更确切地说是第二个隐式FileWriter,会覆盖第一个创建的文件。
按照建议组合语句,或使用追加模式(在这种情况下效率低下)。