当前位置: 首页 > news >正文

Qt | QDataStream 类(数据流)

01、读/写对象原理

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

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 为例):

相关文章:

  • 敏捷=996/007?现实是……
  • 【通过新能源汽车的智慧数字底盘技术看计算机的相关技术堆栈?以后是软硬结合的全能程序员的天下,取代全栈(前后端都会的全栈程序员)】
  • 怎么做才能推动产业园区的数字化转型和升级
  • 独孤思维:每天做着自己不喜欢的工作,你不难受吗
  • uniapp面试题
  • 【docker hub镜像源失效】2024年6月6日 docker 国内镜像源失效
  • RestTemplate远程请求的艺术
  • echarts写某个市地图
  • 如何进行LLM大模型推理优化
  • [大模型]Qwen2-7B-Instruct 接入 LangChain 搭建知识库助手
  • CSS实现经典打字小游戏《生死时速》
  • 【Windows】配置Flutter开发环境
  • ArrayList和LinkedList的区别!!!
  • 文献学习——PWM - PFM模式无缝转换的PFC变换器统一控制
  • LVS工作模式详解,NAT全方位剖析
  • 【笔记】你不知道的JS读书笔记——Promise
  • Android路由框架AnnoRouter:使用Java接口来定义路由跳转
  • Github访问慢解决办法
  • gitlab-ci配置详解(一)
  • Hibernate最全面试题
  • JavaScript设计模式系列一:工厂模式
  • JDK9: 集成 Jshell 和 Maven 项目.
  • js ES6 求数组的交集,并集,还有差集
  • LintCode 31. partitionArray 数组划分
  • MySQL的数据类型
  • Octave 入门
  • OSS Web直传 (文件图片)
  • Python 反序列化安全问题(二)
  • Python利用正则抓取网页内容保存到本地
  • Redis的resp协议
  • tab.js分享及浏览器兼容性问题汇总
  • 蓝海存储开关机注意事项总结
  • 每天10道Java面试题,跟我走,offer有!
  • 前端之Sass/Scss实战笔记
  • 人脸识别最新开发经验demo
  • 通过几道题目学习二叉搜索树
  • 因为阿里,他们成了“杭漂”
  • 长三角G60科创走廊智能驾驶产业联盟揭牌成立,近80家企业助力智能驾驶行业发展 ...
  • 好程序员大数据教程Hadoop全分布安装(非HA)
  • 积累各种好的链接
  • 说说我为什么看好Spring Cloud Alibaba
  • ###C语言程序设计-----C语言学习(6)#
  • (3)选择元素——(17)练习(Exercises)
  • (C语言)strcpy与strcpy详解,与模拟实现
  • (delphi11最新学习资料) Object Pascal 学习笔记---第13章第6节 (嵌套的Finally代码块)
  • (html5)在移动端input输入搜索项后 输入法下面为什么不想百度那样出现前往? 而我的出现的是换行...
  • (附源码)ssm智慧社区管理系统 毕业设计 101635
  • (七)Java对象在Hibernate持久化层的状态
  • (实战)静默dbca安装创建数据库 --参数说明+举例
  • (收藏)Git和Repo扫盲——如何取得Android源代码
  • (一)基于IDEA的JAVA基础1
  • (译) 理解 Elixir 中的宏 Macro, 第四部分:深入化
  • (转)使用VMware vSphere标准交换机设置网络连接
  • .net core 连接数据库,通过数据库生成Modell
  • .NET Core6.0 MVC+layui+SqlSugar 简单增删改查