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