首页 > 解决方案 > 如何在标准 C++ 中流式传输/读取二进制文件的中间部分并写入另一个文件?

问题描述

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

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

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

请帮我。谢谢!!

标签: c++streamfstreambinaryfiles

解决方案


简而言之:

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


推荐阅读