c++ QDataStream
时间: 2023-06-20 22:08:01 浏览: 188
QDataStream 是 Qt 框架中的一个类,用于实现将数据流序列化和反序列化。它可以将数据在不同平台和不同字节顺序之间进行转换,以便实现跨平台的数据通信。
QDataStream 支持多种数据类型,包括整型、浮点型、字符串、字节数组等,可以使用 << 和 >> 操作符将数据写入或读取出来。同时,QDataStream 还支持自定义类型的序列化和反序列化,只需要在自定义类型中重载 << 和 >> 操作符即可。
下面是一个简单的示例代码,演示了如何使用 QDataStream 将一个字符串写入文件中,并读取出来:
```c++
#include <QDataStream>
#include <QFile>
int main()
{
QFile file("test.txt");
file.open(QIODevice::WriteOnly);
QDataStream out(&file);
out.setVersion(QDataStream::Qt_5_15); // 设置数据版本号
QString str = "Hello, world!";
out << str; // 将字符串写入文件中
file.close();
file.open(QIODevice::ReadOnly);
QDataStream in(&file);
in.setVersion(QDataStream::Qt_5_15); // 设置数据版本号
QString readStr;
in >> readStr; // 从文件中读取字符串
file.close();
qDebug() << readStr;
return 0;
}
```
以上代码中,我们首先创建了一个 QFile 对象,并打开了它以便写入数据。接着,我们创建了一个 QDataStream 对象,将其与 QFile 关联起来,并设置了数据版本号。然后,我们将一个 QString 对象写入到文件中。
接下来,我们重新打开了文件,创建了一个新的 QDataStream 对象,并设置了数据版本号。然后,我们从文件中读取了一个 QString 对象,并将其输出到控制台上。
需要注意的是,写入和读取数据时,数据版本号必须一致,否则可能会导致数据无法正确读取。
阅读全文