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

Abh*_*ary 12 java inputstream textinput fileinputstream

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

我是,你叫什么名字.

现在我想写

阿布舍克

在"我"之后,就像我是Abhishek,..如何直接在这个特定的位置写出内容.

Jon*_*eet 11

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

如果您要替换原始文件,则需要将其删除并将新文件移动到位.

有时,将整个文件一次性读入内存可能更简单 - 这取决于您正在尝试做什么,以及文件有多大.


Whi*_*g34 8

您无法将数据插入文件.您可以使用覆盖特定位置的数据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();
Run Code Online (Sandbox Code Playgroud)