假设我有一个名为 abhishek.txt 的文件,其中包含以下行
我是,你叫什么名字。
现在我想写
阿布舍克
在“我是”之后就像我是阿布舍克一样,..如何直接在这个特定位置写内容。
假设我有一个名为 abhishek.txt 的文件,其中包含以下行
我是,你叫什么名字。
现在我想写
阿布舍克
在“我是”之后就像我是阿布舍克一样,..如何直接在这个特定位置写内容。
您不能将数据插入文件中......文件系统(通常)根本不支持这样的操作。通常,您会打开一个文件进行读取和另一个写入,将文件的第一部分从一个流复制到另一个流,写入额外的部分,然后复制文件的第二部分。
如果您尝试替换原始文件,则需要将其删除并将新文件移动到位。
有时一次将整个文件读入内存可能更简单——这取决于你想要做什么,以及文件有多大。
您不能将数据插入文件中。您可以使用 覆盖特定位置的数据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();
一般来说,您需要读取旧文件,修改内存中的内容并再次将其写回。
这里有很多选项,比如是一次读取文件,还是一次读取一小段,是否替换现有文件等,但这通常是要使用的模式。
你有三个选择: