在 Qt 中读取二进制文件主要通过 `QFile` 和 `QDataStream` 实现,具体方法如下:
一、使用 `QFile` 读取二进制文件
打开文件 使用 `QFile::open(QIODevice::ReadOnly)` 以只读模式打开文件,若失败则输出错误信息。
读取文件内容
- 一次性读取: 使用 `readAll()` 将整个文件内容读取到 `QByteArray`,通过 `size()` 获取字节数。 - 分块读取
关闭文件 读取完成后调用 `close()` 关闭文件。
二、使用 `QDataStream` 读取二进制文件
打开文件
同样使用 `QFile::open(QIODevice::ReadOnly)` 打开文件。
创建数据流
使用 `QDataStream` 与文件关联,支持按数据类型(如 `int`、`double` 等)读取二进制数据。
读取数据
通过 `read()` 方法按数据类型读取,例如:
```cpp
quint16 t;
file.read(&t, sizeof(t));
```
三、示例代码
以下是综合使用 `QFile` 和 `QDataStream` 的示例:
```cpp
include include include void readBinaryFile(const QString &filePath) { QFile file(filePath); if (!file.open(QIODevice::ReadOnly)) { qDebug() << "无法打开文件"; return; } // 使用QDataStream按数据类型读取 QDataStream in(&file); in >> quint16 t; in >> double d; // 读取更多数据... file.close(); qDebug() << "读取完成"; } ``` 四、注意事项 数据对齐: 二进制文件需注意数据类型对齐问题,建议使用 `QDataStream` 以确保跨平台兼容性。- 错误处理