gpt4 book ai didi

C# 将字节添加到文件的开头?

转载 作者:行者123 更新时间:2023-11-30 13:15:31 24 4
gpt4 key购买 nike

在文件开头添加字节的最快和最有效的方法是什么?基本上,我想打开一个文件,然后向其中添加一些字节。我考虑过使用循环,但考虑到要添加的所有字节都是相同的,我认为没有必要。

最佳答案

一种对文件非原子的方法(也就是说,如果程序在中间死掉,数据可能会处于不一致的状态):

  1. 打开文件。
  2. 结尾开始,将字节向后移动额外的大小差异。这应该以 block 的形式完成(例如 ReadBytes),而不是一次一个字节 - 参见 best way to copy between streams举个例子。
  3. 在文件开头填写新数据。

但是,这种方法也可能会混淆文件系统预读方案,并且需要查找/随机文件访问。由于这些问题,我只能在设备空间非常宝贵的情况下诚实地推荐它。

另一种对文件原子的方法(如果程序在任何阶段终止,则不会丢失数据并且可以恢复进程):

  1. 打开旧文件。
  2. 创建一个新文件。
  3. 在新文件中填写数据。
  4. 将数据从旧文件移动到新文件(再次 ReadBytes)- 在本例中为之前链接的 SO question应该“按原样工作”。
  5. 删除旧文件并将新文件重命名为旧文件。

“缺点”是它需要一个临时文件。

快乐编码。

关于C# 将字节添加到文件的开头?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7291693/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com