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

Java 是否可以使用PrintWriter在某一行之后开始写入文件?,java,printwriter,Java,Printwriter,以下是我正在处理的基本内容(示例文件): 有没有办法让PrintWriter开始写入上面显示的5行文件,但只在第5行之后写入?所以我想用 PrintWriter log = new PrintWriter("blah.txt"); log.println("52525") 我想让它写在第6行,而不是覆盖第1行 编辑:对于任何有类似问题的人,您都想知道如何附加文件。在我写这篇文章时,有两个人在下面演示了如何使用“append”模式附加到现有文件: FileOutputStream

以下是我正在处理的基本内容(示例文件):

有没有办法让PrintWriter开始写入上面显示的5行文件,但只在第5行之后写入?所以我想用

    PrintWriter log = new PrintWriter("blah.txt");
    log.println("52525")
我想让它写在第6行,而不是覆盖第1行


编辑:对于任何有类似问题的人,您都想知道如何附加文件。在我写这篇文章时,有两个人在下面演示了如何使用“append”模式附加到现有文件:

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

要附加到文件,需要使用构造函数:

try (PrintWriter log = new PrintWriter(new FileWriter("blah.txt", true))) {
    log.println("52525");
}
如果要编写大量的输出,那么a可能很好,如果需要指定字符编码,则需要用a包装a。这使得链条更长:

try (PrintWriter log = new PrintWriter(
                         new BufferedWriter(
                           new OutputStreamWriter(
                             new FileOutputStream("blah.txt", true),
                             Charset.forName("UTF-8"))))) {
    log.println("52525");
}
您所拨打的电话实际上是以下内容的简写:

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

视情况而定。如果您的意思是附加到现有文件(即,在所有现有行之后,在文件末尾开始添加数据),那么答案是肯定的。以“附加”模式打开文件。如果您的意思是,即使文件包含超过5行,也要从第6行开始写入,这也是肯定的,但更棘手。是的!如何添加内容?我几乎,出于我的目的,只需要它开始写在文件的结尾,那里没有更多的行。可能重复的谢谢!这正是我需要的。我想
try (PrintWriter log = new PrintWriter(
                         new BufferedWriter(
                           new OutputStreamWriter(
                             new FileOutputStream("blah.txt", true),
                             Charset.forName("UTF-8"))))) {
    log.println("52525");
}
new PrintWriter(new OutputStreamWriter(new FileOutputStream(fileName)))