【发布时间】:2011-08-12 08:42:59
【问题描述】:
我需要在特定索引位置写入文件。 BufferedWriter 和 PrintWriter 不允许写入索引。我该如何实现这一目标?
基本上我想要做的是,如果一个文件在 EOF 包含一个空行,那么我需要在那个位置写入,否则插入一个新行并写入。将文件的内容复制到临时文件,然后删除原始文件,然后再次将临时文件重命名为原始文件的名称,这不是一种选择。
谢谢
【问题讨论】:
-
如果您在文本文件中的任意位置写入,它可能位于行的中间,也可能位于多字节字符的中间。你怎么知道它会在一行的开头?顺便说一句:你不能插入到文件中,只重写从你到的点的所有内容。
-
@Peter:我们在这里说的是 EOF,而不是随机位置。如果您要去 EOF,您将不会处于多字节字符的中间。您可以检查前一个字节是 CR 还是 LF 字符,以了解您是否在新行的开头。
-
@Vivien,这不是我从“我需要写入特定索引位置的文件”所理解的。如果所有 OP 想要做的就是附加到文件,这可以做到没有“插入”
-
@Peter:问题的第二部分更详细地解释了问题。根据我从解释中的理解,它是关于附加到文件的。
-
OP 可以澄清他/她正在尝试做什么,这将很有用。