写点什么

Qt | 文件操作 QFile

作者:YOLO.
  • 2022 年 9 月 07 日
    河北
  • 本文字数:993 字

    阅读完需:约 3 分钟

Qt | 文件操作 QFile

前言:

我们经常需要对设备或文件进行读取或写入的操作,QIODivece 类是 Qt 中所有 I/O 设备的基础接口类,为支持读/写数据的设备提供了抽象接口。QIODivece 类是抽象的,无法被实例化,一般是使用它所定义的接口来提供设备无关的 I/O 功能。

访问设备:

访问设备的流程:

  • 访问一个设备前需要使用 open() 函数打开设备;

  • 打开设备后可以使用 write() 函数或 putChar() 函数来进行写入;

  • 使用 read() 函数、readLine() 函数,或者 readAll() 函数进行读取;

  • 最后使用 close() 函数关闭设备。

注:使用 open()函数打开设备时,必须指定正确的打开模式,QIODivice 中所有的打开模式由 QIODivice::OpenMode 枚举类型定义,可以使用按位或符号“|”来同时使用。

打开模式:

  • QIODivice::NotOpen: 设备没有打开;

  • QIODivice::ReadOnly: 设备以只读方式打开,这时无法写入;

  • QIODivice::WriteOnly: 设备以只写方式打开,这时无法读取;

  • QIODivice::ReadWrite: 设备以读/写方式打开;

  • QIODivice::Append: 设备以附加模式打开,所有的数据都将写入到文件的末尾;

  • QIODivice::Truncate: 如果可能,设备在打开前会被截断,设备先前的所有内容都将丢失;

  • QIODivice::Text: 当读取时,行结尾终止符会被转换为“\n”;当写入时,行结尾终止符会被转换为本地编码,例如,在 Win32 上时“\r\n”;

  • QIODivice::Unbuffered: 绕过设备所有的缓冲区;

随机存取设备和顺序存储设备:

  • 随机存取设备有: QFileQBuffer 等。它们支持使用 seek() 函数来定位到任意的位置。文件中的当前位置可以使用 pos() 函数来获取。

  • 顺序存储设备有: QTcpSocketQProcess 等。它们不支持定位到任意的位置,数据必须一次性读取。无法使用 pos()和 size()等函数。

文件操作:

QFile 类提供了一个用于读/写文件的接口,它是一个可以用来读/写文本文件、二进制文件和 Qt 资源的 I/O 设备。

操作文件的函数:

  • setFileName(): 设置文件名称,一般在 QFile 构造函数指定文件名,也可以使用 setFileName 进行设置。

  • existes(): 检查文件是否存在。

  • remove(): 删除一个文件。

  • flush(): 刷新文件。

  • size(): 获取文件大小。

  • seek(): 定位到文件的任意位置。

  • pos(): 获取当前的位置。

  • atEnd(): 判断是否到达了文件的末尾。

例:

QFile file("myfile.txt");if(!file.open(QIODivece::WriteOnly)){    qDebug() << file.errorString();}file.write("hello Qt!");file.close();
复制代码

注: 当使用写入模式打开文件时,如果文件不存在,那么就会自动创建一个文件。

发布于: 刚刚阅读数: 3
用户头像

YOLO.

关注

还未添加个人签名 2022.05.06 加入

还未添加个人简介

评论

发布
暂无评论
Qt | 文件操作 QFile_qt_YOLO._InfoQ写作社区