是否可以替换部分文件内容,而无需将整个文件重写到磁盘。 假设我有一个非常大的几千兆字节的文件,如何替换字节,让我们说位置100到200而不重写整个文件?
作为一个额外的好处,我需要一个不使用任何功能的解决方案,而不是java 1.4。
答案 0 :(得分:6)
如果您肯定,您将要编写完全相同的字节数,则可以使用RandomAccessFile
来完成此操作(自Java 1.0起可用)。只需打开文件,寻找您需要的位置,并用新数据覆盖这些字节。
RandomAccessFile f = new RandomAccessFile(new File("C:\\test\\huge.txt"), "rw");
f.seek(100); // Seek ahead
f.write("here is some new stuff".getBytes())
您也可以以相同的方式从任意点读取文件,以防您不确切知道需要更换多少数据(例如,您可以填写/截断您正在编写的内容以避免执行某些操作意外可怕)。