第33课 文本流和数据流

1. Qt中的文件类型

(1)文本文件:文件内容是可读的文本字符

(2)数据文件:文件内容是直接的二进制数据

2. QFile

(1)直接支持文本文件数据文件的读写

  ①qint64 read(char* data, qint64 maxSize);

  ②QByteArray read(qint64 maxSize);

  ③qint64 write(const char* data, qint64 maxSize);

  ④qint64 write(const QByteArray& byteArray);

(2)缺点:需对数据类型进行转换

【编程实验】直接使用QFile读写

3. 文本流和数据流

(1)Qt提供了辅助类简化了文本文件/数据文件的读写

  ①QTextStream:写入的数据全部转换为可读文件

  ②QDataStream:写入的数据根据类型转换二进制数据

(2)IO设备辅助类的使用方法

//1.创建QFile文件对象(如:file)
//2.使用file对象打开文件

//3.将数据写入文件
QxxxStream out(&file);

out << QString("SantaClaus");
out << QString("Result: ") << 3.14;

//4.将数据从文件中读出
QxxxStream in(&file);

in >> dt;     //dt须声明为QString类型;
in >> result; //result须声明为QString;
in >> value;  //value声明为double;

【编程实验】使用文件辅助类读写

(3)数据流文件版本信息

  ①不同Qt版本的数据流文件格式可能不同,当数据流文件需要在不同版本的Qt程序间传递数据时,需要考虑版本问题

  ②相关函数

    void setVersion(int v); //设置读写版本号

    int version() const     //获取读写版本号

4. 小结

(1)Qt中的文件辅助类用于方便读写操作

(2)QTextStream用于文本数据的快速读写

(3)QDataStream用于二进制数据的快速读写

(4)QDataStream的文件格式与Qt版本相关

(5)数据格式文件在程序间传递时,需要考虑版本问题

时间: 2024-10-11 12:46:06

第33课 文本流和数据流的相关文章

Qt文本流和数据流

Qt文件类型分为文本文件(内容是可以读的文本字符)与数据文件(二进制数据). 注:对于电脑来说所有的文件都是二进制数据. QFile直接支持文本文件与数据文件的读写. QTextStream text(&file); QDataStream text(&file); 原文地址:https://www.cnblogs.com/hjxzjp/p/12339751.html

Qt--文本流和数据流、缓冲操作和数据操作

一.文本流和数据流 A.Qt中讲文件类型分为2大类1.文本文件--文件内容是可读的文本字符2.数据文件--文件内容是直接的二进制数据QFile直接支持文本文件和数据文件的读写B.Qt提供了辅助类简化了文本文件/数据文件的读写1.QTextStream--写入的数据全部转换为可读文本2.QDataStream--写入的数据根据类型转换为二进制数据IO设备辅助类的使用方式不同的Qt版本的数据流文件格式可能不同void setVersion(int v)//设置的版本号int version()con

【Linux探索之旅】第三部分第二课:流、管道、重定向,三管齐下

内容简介 1.第三部分第二课:流.管道.重定向,三管齐下 2.第三部分第三课预告:监视系统活动,滴水不漏 流.管道.重定向,三管齐下 这一课我们来学一些非常有用的内容,而且相当有意思,而且内容很多,而且有可能颠覆你的三<观>(毕竟三管齐下,不颠覆三观也难). 今天的标题中的三个名称,听上去就怪怪的.什么流,管道,重定向,都啥玩意啊.不过希望学完这课,大家能够有拨云见雾的感觉. 到目前为止,我们已经学习了不少Linux的命令了,也已经比较熟悉命令行的用法了.其最基本用法是这样的: 在终端输入命令

标准文本流

标准文本流的三个属性 1.默认按顺序排列,若后面空间不足,文章内容会自动换行. 2.高低不一样会默认底端对齐. 3.如果想没有缝隙必须紧密连接,如果编辑代码时有多余空格网页就会有一个空格留位. 如何脱离文本流(按照html划分可叫文本级和容器级) 想让块级和行内相互转化可以使用display,display四个属性none/inline/block/inline-block 1)none 可以用于悬浮下拉菜单,为默认值,用于隐藏. 2)inline 用于把块级变成行内. 3)block 用于把行

TCP系列33—窗口管理&流控—7、Silly Window Syndrome(SWS)

一.SWS介绍 前面我们已经通过示例看到如果接收端的应用层一直没有读取数据,那么window size就会慢慢变小最终可能变为0,此时我们假设一种场景,如果应用层读取少量数据(比如十几bytes),接收端TCP有了少量的新的接收缓存后如果立即进行window update把新的window size通告发送端的话,发送端如果立即发送数据,那么接收端缓存可能又会立即耗尽,window size又变为0,接着应用层重复读取少量数据,这个过程重复的话,那么发送端就会频繁的发送大量的小包,这种场景我们就

Linux文本流

Linux文本流 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 文本流 文件用于数据的存储,相当于一个个存储数据的房子.我们之前说,所谓的数据是0或者1的序列,但严格来说,Linux以字节(byte)来作为数据的单位,也就是说这个序列每八位(bit)为一个单位(八位二进制对应的十进制范围为0到255).使用ASCII编码,可以将这样一个字节转换成为字符.所以,在Linux中,我们所说的数据,完全可以用字符表达出来,也就是说文

css对于float返回文本流的做法

在设计中常常会遇到这样的问题:当容器内部有float样式时,容器的高度不会被撑开. 下面介绍两种方法解决上面的问题 第一种:在浮动元素后面加一个clear: both:比较常见的方法. <style type="text/css"> .left{float:left;} .right{float:right;} .clear{clear:both;} </style> <div> <div class="left">

文本流与二进制流

一. 基本知识: 1. 二进制文件与文本文件的区别:    将文件看作是由一个一个字节(byte) 组成的, 那么文本文件中的每个字节的最高位都是0,也就是说文本文件使用了一个字节中的七位来表示所有的信息,而二进制文件则是将字节中的所有位都用上了,这就是两者的区别:接着,第二个问题就是文件按照文本方式或者二进制方式打开,两者会有什么不同呢?其实不管是二进制文件也好,还是文本文件也好,都是一连串的0和1,但是打开方式不同,对于这些0和1的处理也就不同.如果按照文本方式打开,在打开的时候会进行tra

linux系统知识 - 文本流&amp;管道

作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 参考链接 http://www.cnblogs.com/vamei/archive/2012/09/14/2683756.html http://www.cnblogs.com/vamei/archive/2012/10/10/2715398.html 文本流原理 万物皆文本 -> 万物皆文本流 当unix执行一个程序的时候,会自动打开三个流,stdin.stdout.stder