当前位置:   article > 正文

Qt——QIODevice_qiodevice::readwrite

qiodevice::readwrite

1、说明

QIODevice中实现了Qt中的所有I/O方法,其他用到IO的类如QFile、QBuffer、QTcpSocket,都是从这个类继承而来。

QIODevice是抽象类,不能实例化,但是可以用多态技术,来定义一个QIODevice去承接一个从它继承而来的实现类。

在读写之前,open()一个文件时必须先设置正确的OpenMode(如ReadOnly或ReadWrite)。之后就可以调用write()、putChar()向其中write,调用read()、readLine()、readAll()来read。完成read、write后调用close()。

有两种Device:①随机访问;②顺序访问。

①随机访问:调用seek()转移到文件中任意位置,调用pos()查看当前位置。QFile、QBuffer是随机访问的典型;

②顺序访问:不能从任意位置开始。数据读取必须一个接一个。QTcpSocket、QProcess是顺序访问的典型。

如何判断是哪种device呢?调用isSequential()方法。

QIODevice会发射readyRead()当新的数据已经准备好reading,例如,读取的时候,有新的数据到达网络或额外的数据被添加到文件中。我们可以调用bytesAvailable()来判断现在有多少个bytes是准备读取的。当QTcpSocket程序处理异步数据时,经常会有数据不定时的到达,这时bytesAvailable()通常和readyRead()信号联用。当有数据要write时,QIODevice会发射bytesWritten()信号,此时用bytesToWrite()可以知道有多少bytes等待写入。

2、模块和加载项

Header

#include<QIODevice>

qmake

QT += core

Inherits

QObject

Inherited By

QFileDevice

3、构造

QIODevice(QObject * parent)

给Parent构造一个

QIODevice

QIODevice()

构造一个QIODevice

4、静态属性

类型

属性

flags

OpenMode

enum

OpenModeFlag

这个enum是用于open()的参数,主要是描述文件打开时采用的device。如果要查看这个device,可以通过openMode()返回。

常用的Mode有ReadOnly、WriteOnly、ReadWrite、Append,对应的device顾名思义。

5、对象方法

6、信号

原文链接:Qt——QIODevice-QT开发中文网

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/42564
推荐阅读
相关标签
  

闽ICP备14008679号