文件io有没有一种方法可以使用Java PrintWriter写入特定行?
我有一个Java程序,它使用PrintWriter将文本写入一个文件,使用大量的。println()语句,一切正常。 我想知道的是:有没有一种方法可以写入输出文件中的特定行
例如 如果我的程序使用10向输出文件写入10行。println()语句。 有没有一种方法,在我的程序结束时,我可以告诉它在文件中的第三行文本中写一行,然后将剩下的7行向下一行,为新的第三行腾出空间
任何帮助都将不胜感激, 提前感谢,, 斯蒂芬
你可以在下面搜索框中键入要查询的问题!
我有一个Java程序,它使用PrintWriter将文本写入一个文件,使用大量的。println()语句,一切正常。 我想知道的是:有没有一种方法可以写入输出文件中的特定行
例如 如果我的程序使用10向输出文件写入10行。println()语句。 有没有一种方法,在我的程序结束时,我可以告诉它在文件中的第三行文本中写一行,然后将剩下的7行向下一行,为新的第三行腾出空间
任何帮助都将不胜感激, 提前感谢,, 斯蒂芬
# 1 楼答案
不仅是PrintWriter不能这么做。其他所有的编剧和输出流也做不到。即使是随机接入信道也无法做到这一点
这是因为“一条线”没有特定的长度。此外,如果你想插入一些东西,你必须移动它后面的所有东西
你能做的就是重新定位一个流并覆盖它
# 2 楼答案
你可以这样做,但你必须做颠簸
最简单的解决方案是用所需的额外行重新写入文件
或者使用RandomAccessFile,您可以搜索第三行,向下复制文件中的所有数据,然后插入要添加的行
# 3 楼答案
否,
PrintWriter
只能覆盖文件或附加到文件末尾如果“覆盖”一行,新行的长度可能与原始行不同,因此该行后面的所有内容都必须进行移位,而
PrintWriter
无法做到这一点