2012-10-07 101 views
0

此问题已经多次回答。插入或更新文件中间字节的最佳方法

人们认为唯一的方法是将旧文件的字节复制到新文件中,然后插入新字节并完成旧文件中剩余字节的复制。然后删除旧文件并重命名新文件。

但我的问题是关于什么技术应用最好的文本/二进制编辑器。如果我打开一个非常大的二进制文件(480MB),并在HxD和记事本++的开头添加4个字节,似乎程序正在复制整个文件,因为我可以看到硬盘上的100%活动和正在写入的数据速度(以〜100MB/s写3-4秒)。我想假设唯一的方法是将数据复制到临时文件?

回答

3

将字节添加到/从其他位置以外的文件的唯一方法是在这些字节之后重写任何内容。你可以这样做,但使用临时文件通常更容易和更安全,因为直到写入新文件之前原始文件才被触摸。

要在原位插入N个字节,您需要从要插入位置的位置读取至少N个字节。然后你写新的字节,覆盖N个字节。但你只是阅读它们,所以你现在可以把它们写回来。但是,这将再次覆盖N个字节,因此您需要先阅读这些字节。正如你所看到的,它涉及到很多寻找 - 将所有剩余数据存储在内存中对于不太大的文件来说更容易和更快。对于大文件,通常使用临时文件来避免这种麻烦。

相关问题