c++ - 如何在标准 C++ 中流式传输/读取二进制文件的中间部分并写入另一个文件?
问题描述
如果我有 1000 字节的文件(只是简单的示例),如何读取 300 字节到 700 字节的字节并将该部分写入新的二进制文件,尤其是使用 fstream?该过程应该与平台无关(使用 c++11),甚至适用于大文件。
请注意,只要它没有失败,我不在乎需要多长时间(性能)。因此,我喜欢将字节逐字节写入文件的方法,类似于下载大文件时的方法。
网络上可能有很多这样的问题,但它们要么处理复制整个文件、读取文本文件的一部分,要么只处理可以作为字节数组变量保存并操作它的小文件。
请帮我。谢谢!!
解决方案
简而言之:
打开文件进行阅读。寻求偏移 300。将 400 字节读入缓冲区。关闭文件。打开第二个文件进行写入。将缓冲区写入第二个文件。关闭第二个文件。释放缓冲区。
推荐阅读
- python - Django 表单不保存到表中
- javascript - 如何使用 css 或 jquery 更改按钮图像并在单击时对其进行动画处理?
- javascript - 语法糖 JavaScript(If 语句)错误
- python - 如何仅从链接中提取段落部分,不包括网页中的其他链接?
- c++ - 如何使用 QT 插入 SQL 数据库表
- javascript - 数据表的问题返回数据和格式以及来自 ajax POST 的更多子数据
- python - 尝试在 Django 中将本地图像上传到 S3 的可疑操作
- javascript - html5画布图像移动问题
- javascript - YouTube 用户脚本 (TamperMonkey) 更改搜索中的占位符
- python - “AttributeError: 'NoneType' 对象没有属性 'bind'” 在 kv 文件中使用 FlatButton 后