Qt | QDataStream 类(数据流)

06-15 1360阅读

01、读/写对象原理

1、QDataStream 类负责以二进制方式读/写程序中的对象,输入源和输出目样标可以是QIODevice、QByteArray 对象。

Qt | QDataStream 类(数据流)
(图片来源网络,侵删)

2、字节序:即多字节数据(即大于一个字节的数据)在内存中的存储顺序,有如下两种方式

 Little-Endian(LE,小端):即低位字节存储在低地址端,高位字节存储在高地址端

 Big-Endian(BE,大端):即高位字节存储在低地址端,低位字节储倣在高地址端。这是 QDataStream 的默认字节序。

 比如对于整数 0x2345,若按 big-endian(大端)顺序存储,则按 0x23、0x45 的顺序存储,若按 little-endian(小端)顺序存储,则以 0x45、0x23 的顺序存储。

3、序列化(serializable):是把对象状态转换为可保存或可传输的形式的过程,与其对应的是反序列化,序列化和反序列化保证了数据易于存储和传输。数据通常以二进制序列的形式进行传输,因此序列化通常是把对象转换为字节序列的过程,其相反过程称为反序列化。

4、QDataStream 支持的 Qt 类型有QBrush、QColor、QDateTime、QFont、QPixmap、QString、QVariant等类型,还包括容器类型,比如 QList、QVector、QSet、QMap等,支持的 Qt类型的完整列表可参阅帮助文档 Serializing Qt Data Types

5、使用 QDataStream 读/写二进制数据的步骤如下(以读/写到 QFile 为例):

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]