QDataStream类实现将QIODevice的二进制数据串行化。一个数据流就是一个二进制编码信息流,独立于主机的操作系统,CPU或字节顺序。QDataStream可以实现c++的基本数据类型的串行化。
构造函数:

常用函数 :
| atEnd() | 是否到达结束位置 |
| readBytes() | 从流中读取缓冲区并返回对流的引用 |
| readRawData(char *s,int len) | 将流中最多len字节读取到s中 |
| resetStatus() | 重置数据流的状态 |
| setByteOrder() | 设置序列化字节顺序 |
| setDevice() | 设置设备 |
| setStatus() | 设置状态 |
| setFloatingPointPrecision() | 设置精度 |
| setVersion(int v) | 数据序列化格式的版本号设置为v |
| skipRawData() | 跳过字节数 |
| writeBytes(const char* s,uint len) | 将长度说明符len和缓冲区s写入流,并返回对流的引用 |
| writeRawData(const char* s,int len) | 将s中的len字节写入流。返回实际写入的字节数 |
| << | 将数据写入流中 |
| >> | 流中读取数据 |
事务的操作:(Qt 5.7中引入)
| startTransaction() | 在流上启动新的读取事务 |
| rollbackTransaction() | 回滚事务 |
| abortTransaction() | 中止事务 |
| commitTransaction() | 提交事务 |
QDataStream::ByteOrder(读取/写入数据的字节顺序)
| QDataStream::BigEndian | 最高有效字节优先(默认值)(大端) |
| QDataStream::LittleEndian | 最低有效字节优先(小端) |
QDataStream::FloatingPointPrecision(浮点数精度)
| QDataStream::SinglePrecision | 数据流中的所有浮点数都具有 32 位精度 |
| QDataStream::DoublePrecision | 数据流中的所有浮点数都具有 64 位精度 |
写入和读取数据:
写入到文件中:
QFile file("D:/789.txt");
file.open(QIODevice::WriteOnly);
QDataStream stream(&file);
//串行化字符串
stream<<QString("abcdefg/n");
//串行化整数
stream<<(qint32)6;//写入数据
file.close();

读取文件中的内容:
QString str;
qint32 qin;
QFile file1("D:/789.txt");
file1.open(QIODevice::ReadOnly);
QDataStream in(&file1);
in>>str>>qin;//读取数据
qDebug()<<str;
qDebug()<<qin;
file1.close()

使用函数读取和写入数据:
- readRawData(char *s,int len)
- writeRawData(const char* s,int len)
注意:这种方法需要自己解码
写入数据:
QFile file("D:/789.txt");
file.open(QIODevice::WriteOnly|QIODevice::Append);
QDataStream stream(&file);
stream.writeRawData("456456",6);
file.close();
读取数据:
QFile file("D:/789.txt");
file.open(QIODevice::ReadOnly|QIODevice::Text);
QDataStream stream(&file);
stream.skipRawData(40);//跳过40个字节
char ch[10];
stream.readRawData(ch,4);//读取数据
qDebug()<<ch;
file.close();
可以设置版本号,使得更好的兼容
使用函数 setVersion(int v)进行设置




![[附源码]计算机毕业设计良辰之境影视评鉴系统Springboot程序](https://img-blog.csdnimg.cn/9166d53e24c4421491f55a22b88eeba5.png)


![[前端面试题]:数组去重的几种方法](https://img-blog.csdnimg.cn/img_convert/d1ee4ea9bc89fbfebb7c86dd5e511757.webp?x-oss-process=image/format,png)











