1

我想用 y 字节替换文件的前 x 字节。也就是说 x 和 y 的长度不同。我尝试复制到新文件。它可以工作,但对于大文件来说很慢。我知道可以使用替换 RANDOMAccessfile 的确切长度。但我无法将它用于我的目的。

非常感谢您的帮助。

4

2 回答 2

3

如果xy不一样,你别无选择,只能先写y,然后再写文件的其余部分,即使你所做的只是将文件的其余部分向上移动y - x字节。

于 2012-05-22T12:46:42.743 回答
2

如果您迫切需要它快速,那么您可以创建一个自己的随机访问接口,由一组不可变文件 + 不可变更改列表支持。如果您的应用程序有一些空闲时间,那么它可以在后台将最后一个不可变提交点 + 更改列表合并到一个新文件中。

变更列表可以很简单

  • 先前更改列表/提交点文件的路径
  • 要替换的偏移量和长度
  • 替换数据

提交点只是一个完整的文件。

于 2012-05-22T12:53:05.303 回答