有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

文件io有没有一种方法可以使用Java PrintWriter写入特定行?

我有一个Java程序,它使用PrintWriter将文本写入一个文件,使用大量的。println()语句,一切正常。 我想知道的是:有没有一种方法可以写入输出文件中的特定行

例如 如果我的程序使用10向输出文件写入10行。println()语句。 有没有一种方法,在我的程序结束时,我可以告诉它在文件中的第三行文本中写一行,然后将剩下的7行向下一行,为新的第三行腾出空间

任何帮助都将不胜感激, 提前感谢,, 斯蒂芬


共 (3) 个答案

  1. # 1 楼答案

    不仅是PrintWriter不能这么做。其他所有的编剧和输出流也做不到。即使是随机接入信道也无法做到这一点

    这是因为“一条线”没有特定的长度。此外,如果你想插入一些东西,你必须移动它后面的所有东西

    你能做的就是重新定位一个流并覆盖它

  2. # 2 楼答案

    你可以这样做,但你必须做颠簸

    最简单的解决方案是用所需的额外行重新写入文件

    或者使用RandomAccessFile,您可以搜索第三行,向下复制文件中的所有数据,然后插入要添加的行

  3. # 3 楼答案

    否,PrintWriter只能覆盖文件或附加到文件末尾

    如果“覆盖”一行,新行的长度可能与原始行不同,因此该行后面的所有内容都必须进行移位,而PrintWriter无法做到这一点