QIODevice(读取数据块设备)

QIODevice类是Qt中所有I/O设备基础接口,QIODevice是抽象类无法实例化。

QIODevice类为QFile,QBuffer和QTcpSocker等提供支持读写数据块的设备提供一个抽象接口。

常用的函数:

open(QIODevice::OpenModeFlag)打开设备,必须设置打开模式
close()关闭文件
isOpen()判断是否打开
write()写入
putChar()写入
read()读取
readData()读取固定字节数数据
readLine()读取一行
readAll ()读取全部
getChar()读取一个字符
atEnd()是否在文件末尾
peek(X)查看最多X字节
setOpenMode()设置打开模式
size()返回设备大小
skip(X)跳过X个字节
ungetChar()撤销getChar操作

 open(QIODevice::OpenModeFlag)

使用打开方式时,可以使用 | 使用多个打开方式

QIODevice::NotOpen设备未打开
QIODevice::ReadOnly设备已打开以供读取
QIODevice::WriteOnly设备已打开以进行写入。请注意,对于文件系统子类(例如 QFile),此模式意味着截断,除非与 ReadOnly、Append 或 NewOnly 结合使用。
QIODevice::ReadWrite设备已打开,可供读取和写入
QIODevice::Append设备以追加模式打开,以便将所有数据写入文件末尾
QIODevice::Truncate如果可能,设备在打开之前会被截断。设备的所有早期内容都将丢失
QIODevice::Text读取时,行尾终止符将转换为“\n”。写入时,行尾终止符将转换为本地编码,例如 Win32 的“\r\n”。
QIODevice::Unbuffered将绕过设备中的任何缓冲区
QIODevice::NewOnly文件不存在,创建并打开该文件操作系统保证您是唯一创建和打开文件的人(Qt5.11新加)
QIODevice::ExistingOnly文件存在,此标志必须与只读、只写或读写一起指定。Qt5.11新加)

常用的信号:

aboutToClose()设备关闭
byteWrite()有数据写入
readyRead()数据被读取
readChannelDone()当此设备中的输入(读取)流关闭时

 QIODevice会区分两种类型设备:随机存储和顺序存储设备:

使用isSequential()来判断设备类型

  • 随机存储设备支持seek()函数来定位到任意位置,文件中可以使用pos()函数获取
    • QFile
    • QBuffer
  • 顺序存储设备不支持定位到任意为置,数据必须一次性读取
    • QTcpSocket        
    • QProcess
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值