是否可以使用 PrintWriter 在某一行之后开始写入文件?

Is it possible to use PrintWriter to begin writing to a file AFTER a certain line?

这是我主要使用的内容(示例文件):

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 行。

编辑:对于有类似问题的任何人,您想弄清楚如何附加 您的文件。在我写这篇文章时,有两个人在下面展示了如何

要附加到现有文件,请使用 "append" 模式:

FileOutputStream fos = new FileOutputStream(filename,true);
PrintWriter      pw  = new PrintWriter(fos);

FileOutputStream 构造函数的 true 参数设置追加模式。

追加到一个文件,需要使用FileWriter(String fileName, boolean append)构造函数:

try (PrintWriter log = new PrintWriter(new FileWriter("blah.txt", true))) {
    log.println("52525");
}

如果你要写很多输出,那么 BufferedWriter may be good, and if you need to specify the character encoding, you need to wrap a FileOutputStream with an OutputStreamWriter。这使得链条更长:

try (PrintWriter log = new PrintWriter(
                         new BufferedWriter(
                           new OutputStreamWriter(
                             new FileOutputStream("blah.txt", true),
                             Charset.forName("UTF-8"))))) {
    log.println("52525");
}

你调用的PrintWriter(String fileName)实际上是shorthand for:

new PrintWriter(new OutputStreamWriter(new FileOutputStream(fileName)))