这是我正在使用的基本(示例文件):
Line 1: 213124
Line 2: 243223
Line 3: 325425
Line 4: 493258
Line 5: 359823
有没有办法让PrintWriter开始写入上面显示的5行的文件,但是它只写在第5行之后?所以我想使用
PrintWriter log = new PrintWriter("blah.txt");
log.println("52525")
我希望它将其写入第6行,而不是覆盖第1行。
编辑:对于遇到类似问题的任何人,您想了解如何追加您的文件。在我写这篇文章时,两个人展示了如何
答案 0 :(得分:1)
要附加到现有文件,请使用“追加”模式:
FileOutputStream fos = new FileOutputStream(filename,true);
PrintWriter pw = new PrintWriter(fos);
true
构造函数的FileOutputStream
参数设置追加模式。
答案 1 :(得分:0)
要追加到文件,您需要使用FileWriter(String fileName, boolean append)
构造函数:
try (PrintWriter log = new PrintWriter(new FileWriter("blah.txt", true))) {
log.println("52525");
}
如果您要编写大量输出,那么BufferedWriter
可能会很好,如果您需要指定字符编码,则需要使用{{包装FileOutputStream
3}}。这使链条更长:
try (PrintWriter log = new PrintWriter(
new BufferedWriter(
new OutputStreamWriter(
new FileOutputStream("blah.txt", true),
Charset.forName("UTF-8"))))) {
log.println("52525");
}
您调用的OutputStreamWriter
实际上是:
new PrintWriter(new OutputStreamWriter(new FileOutputStream(fileName)))