zoukankan      html  css  js  c++  java
  • Qt序列化格式分析(qint,QString)(非常简单好用)

    最近项目需要进行QT开发环境下对传输对象进行序列化与反序列化处理,对基本类型的处理在使用QT默认的序列化方式还是完全手工序列化这两种方式之间有些犹疑不定,边想了解下QT默认序列化基本类型的格式,项目中只用到了整形和字符串类型,所以只对这两类基本类型进行了简单分析。

             分析方式是直接使用QT的方式生成二进制文件,用FlexHEX打开查看分析,生成二进制的代码直接从QT的帮助文档粘贴的,内容如下,稍作修改:

        QFile file("file.dat");

        file.open(QIODevice::WriteOnly);

        QDataStream out(&file);

        //out << (qint16)42;

        //out << (qint8)42;

        out << QString("汉");

        file.flush();

        file.close();

    测试结果如下:

    输入

    类型

    序列化后的二进制文件

    42

    qint16

    00 2A

    42

    Qint8

    2A

    QString

    00 00 00 02 6C 49

    结论:

           整形的qint8,qint16,qint32分别使用一个、两个、四个字节存放,与内存一致;QString类型的前四个字节表示字符的字节长度,后面为字符的UTF16编码。

    http://blog.csdn.net/programmerlizhezhe/article/details/17383339

  • 相关阅读:
    Java输出文件到本地(输出流)
    Java 工厂设计模式
    实际工作与JAVA面试题
    JAVA 转义字符串中的特殊字符
    Oracle工作笔记
    JS验证表单中TEXT文本框中是否含有非法字符
    JAVA 解析TXT文本
    表单异步提交数据
    rem.js(2)
    rem.js(1)
  • 原文地址:https://www.cnblogs.com/findumars/p/5169970.html
Copyright © 2011-2022 走看看