如何在文件中的特定位置写入内容

假设我有一个名为abhishek的文件.txt其中包含以下行

我是,你叫什么名字。

现在我想写

阿比舍克

在“我是”之后,就像我是Abhishek一样,..如何直接在此特定位置编写内容。


答案 1

您无法将数据插入到文件中...文件系统(一般来说)根本不支持这样的操作。通常,您会打开一个文件进行读取,打开另一个文件进行写入,将文件的第一部分从一个流复制到另一个流,写入额外的部分,然后复制文件的第二部分。

如果您尝试替换原始文件,则需要将其删除并将新文件移动到适当的位置。

有时,一次性将整个文件读入内存可能会更简单 - 这取决于您要执行的操作以及文件的大小。


答案 2

不能将数据插入到文件中。您可以使用 覆盖特定位置的数据。但是,插入需要更改其后的所有数据。对于您的情况,请尝试类似如下的方法:RandomAccessFile

File file = new File("abhishek.txt");
Scanner scanner = new Scanner(file).useDelimiter("\n");
String line = scanner.next();
String newLine = line.substring(0, 5) + "Abhishek" + line.substring(5);
FileWriter writer = new FileWriter(file);
writer.write(newLine);
writer.close();