• 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
  • 相关阅读:
    字符集(ASCII、GBK、Unicode、UTF-8)
    windows安装zabbix-agent
    二叉树进阶——手撕二叉搜索树
    15.springmvc源码解读之手写springmvc(简易版本)
    工程云平台源码 建筑工地劳务实名制、危大工程监管平台源码
    学习笔记-微信支付
    猕猴桃的红色果肉受到特定的激活-抑制系统的控制
    DVWA - Brute Force
    mysq基础语句+高级操作(学这篇就够了)
    现货白银有哪些优势
  • 原文地址:https://blog.csdn.net/qq_45303986/article/details/128076469