剖析QTextStream和QDataStream的区别

剖析QTextStream和QDataStream的区别

 

对于初学者来说,QTextStream和QDataStream这两个概念的确不太好理解和区分,究竟什么时候适合使用QTextStream什么时候适合使用QDataStream也不是很明晰。

QTextStream和QDataStream都是面向数据流的,都适用于QIODevice,但是他们的侧重点不同。可以这么说,QTextStream能做的事情QDataStream都能做。
QTextStream侧重于向QIODevice文本读写,这里所说的文本指的是普通的简单的QChar,QString,QLatin1Char,int等等之内的,和C语言中写文件或者网络传输的时候,先将内容填充到一个buffer,进行操作有点类似,属于普通的轻量级的流操作类。

 

 

 

QDataStream则是侧重于数据格式和类型。QDataStream数据流不仅可以操作QTextStream所能处理的普通文本,而且可以对特定格式的类型数据进行完美的输入与输出。

熟悉Linux C开发的程序员应该知道,通过socket传输text文本数据比较容易,如果我们想通过socket传输特定的数据节结构而且跨平台以及CUP进行操作和解析就比较麻烦。比如对于一个点的坐标,要么传输一个结构体,让接收端进行解析,但是可能对于不同的平台以及不同的内存分配方式的CPU来说,解析的结果不一定是我们预期的,可是实现,但是会比较麻烦。

QDataSream就可以轻松的做到这一点,QDataSream将数据序列化。不仅可以读写text,而且还好可以读写一个特定是数据类型,比如QPoint, QFont,几乎Qt支持的所有类型都可以使用QDataSream进行操作。

就拿读写QPoint为例:

 

 

 

 

 

QDataStream是根据类型以及输出输入顺序来决定输出数据。列举下面的例子来说明问题

 

 

 

 

 

 

 


版权申明:
转载文章请注明原文出处http://blog.csdn.net/feiyinzilgd/archive/2010/12/30/6107587.aspx

并请联系谭海燕本人或者前往谭海燕个人主页留言

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值