Java 如何在文件中的特定位置写入内容
假设我有一个名为abhishek.txt的文件,其中包含以下行 我是,你叫什么名字 现在我想写作 阿披实 在“我是”之后就像我是阿披舍克一样。。Java 如何在文件中的特定位置写入内容,java,inputstream,textinput,fileinputstream,Java,Inputstream,Textinput,Fileinputstream,假设我有一个名为abhishek.txt的文件,其中包含以下行 我是,你叫什么名字 现在我想写作 阿披实 在“我是”之后就像我是阿披舍克一样。。 如何直接将内容写入此特定位置。一般来说,您需要读取旧文件,修改内存中的内容,然后将其重新写入 这里有很多选项,例如是一次读取全部文件,还是一次读取一小块文件,是否替换现有文件等等,但这通常是要使用的模式。您不能将数据插入文件。您可以使用RandomAccessFile覆盖特定位置的数据。但是,插入后需要更改所有数据。对于您的情况,请尝试以下方式: Fi
如何直接将内容写入此特定位置。一般来说,您需要读取旧文件,修改内存中的内容,然后将其重新写入
这里有很多选项,例如是一次读取全部文件,还是一次读取一小块文件,是否替换现有文件等等,但这通常是要使用的模式。您不能将数据插入文件。您可以使用
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();
无法将数据插入到文件中。。。文件系统(通常)不支持这种操作。通常,打开一个文件进行读取,打开另一个文件进行写入,将文件的第一部分从一个流复制到另一个流,写入额外部分,然后复制文件的第二部分 如果要替换原始文件,则需要将其删除并将新文件移动到位
有时,一次性将整个文件读入内存可能更简单—这完全取决于您要执行的操作以及文件的大小。您有三种选择:
我使用RandomAccessFile成功地做到了这一点: 这样,您将得到一个文件,其中完全包含预期的“我是阿披舍克”内容。
即使第一行之后有内容,也可以这样做,您希望将其保留在文件中(这是我最初的问题:我有一个大文件,必须在某个字符串之后插入一些内容)不要在文件末尾写,这样更容易。请避免发布截图,即使突出显示了语法。截图会阻止残疾人(使用屏幕阅读器)理解内容。也会阻止普通人复制/粘贴代码的相关部分