如何在标准c ++中流式传输/读取二进制文件的中间部分并写入另一个文件?

How to stream/read middle portion of binary file and write to another file in standard c++?

本文关键字:中间部 二进制文件 文件 另一个 读取 标准 传输      更新时间:2023-10-16

如果我有 1000 字节的文件(只是一个简单的例子(,如何读取 300 字节到 700 字节的字节并将该部分写入新的二进制文件,尤其是使用 fstream? 该过程应该是独立于平台的(使用 c++11(,甚至适用于大文件。

请注意, 我不在乎它需要多长时间(性能(,只要它不失败。所以我喜欢将字节逐字节写入文件的方法,类似于下载大文件时的方法。

网络上可能有很多这样的问题,但它们都涉及复制整个文件,读取文本文件的一部分,或者只处理可以作为字节数组变量保存并操作它的小文件。

求求你,帮帮我。 谢谢!!

简而言之:

打开文件进行读取。寻求抵消 300。将 400 字节读入缓冲区。关闭文件。 打开第二个文件进行写入。将缓冲区写入第二个文件。关闭第二个文件。释放缓冲区。

  1. 使用 fopen 打开二进制文件,第二个参数可能需要 'rb'
  2. 使用 fseek 重新定位流位置指示器
  3. 使用面包阅读您想要多长的零件
  4. 使用 fwrite 完成目标文件。 所有这些都是C++标准。