
慧心园丁为您分享以下优质知识
在 Qt 中读取二进制文件主要通过 `QFile` 和 `QDataStream` 实现,具体方法如下:
一、使用 `QFile` 读取二进制文件
使用 `QFile::open(QIODevice::ReadOnly)` 以只读模式打开文件,若失败则输出错误信息。
读取文件内容
- 一次性读取:
使用 `readAll()` 将整个文件内容读取到 `QByteArray`,通过 `size()` 获取字节数。 - 分块读取:通过 `read(size_t)` 按指定字节数读取,适用于大文件或流式处理。
读取完成后调用 `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() >
quint16 t;
in >
>
double d;
// 读取更多数据...
file.close();
qDebug()