qt中读写二进制数据的问题

博客提及了readRawData,这可能与信息技术领域的数据读取操作相关。
readRawData
Qt6 中,使用 `QFile` 和 `QDataStream` 可以非常方便地进行二进制文件的读写操作。这种方式适用于保存和读取结构化数据,如整型、浮点型、字符串等。 ### 示例:使用 Qt6 写入和读取二进制文件 #### 1. 写入二进制文件 ```cpp #include <QFile> #include <QDataStream> #include <QDebug> void writeBinaryFile(const QString &fileName) { QFile file(fileName); if (!file.open(QIODevice::WriteOnly)) { qDebug() << "无法打开文件进行写入"; return; } QDataStream out(&file); // 设置版本号以确保兼容性 out.setVersion(QDataStream::Qt_6_0); // 写入一些数据 qint32 number = 123456; double dbl = 3.14159265358979323846; QString str = "Hello, Qt6 Binary File!"; out << number << dbl << str; file.close(); qDebug() << "数据已写入文件"; } ``` #### 2. 读取二进制文件 ```cpp #include <QFile> #include <QDataStream> #include <QDebug> void readBinaryFile(const QString &fileName) { QFile file(fileName); if (!file.open(QIODevice::ReadOnly)) { qDebug() << "无法打开文件进行读取"; return; } QDataStream in(&file); in.setVersion(QDataStream::Qt_6_0); qint32 number; double dbl; QString str; in >> number >> dbl >> str; file.close(); qDebug() << "读取到的数据:"; qDebug() << "整数:" << number; qDebug() << "浮点数:" << dbl; qDebug() << "字符串:" << str; } ``` #### 3. 主函数调用示例 ```cpp #include <QCoreApplication> int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); QString fileName = "data.bin"; // 写入数据 writeBinaryFile(fileName); // 读取数据 readBinaryFile(fileName); return a.exec(); } ``` --- ### 解释 - **QFile**:用于打开和操作文件。 - **QDataStream**:用于读写二进制数据。它可以将 C++ 基本类型(如 `int`, `double`, `QString` 等)序列化为二进制格式。 - **setVersion()**:设置数据流的版本,以确保在不同 Qt 版本之间读写兼容。 - **<< 和 >> 运算符**:用于将数据写入流或从流中读取数据。 --- ### 注意事项 - 读取和写入的数据顺序必须一致。 - 如果你希望跨平台使用(如 Windows 和 Linux),需要注意字节序(endianness)问题Qt 会自动处理这些。 - 二进制文件不便于人工查看,适合用于保存程序内部数据。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值