QT系列——读写文本文件

举报
小糖饼最甜呀 发表于 2022/04/03 15:01:21 2022/04/03
【摘要】 本文主要描述如何使用Qt读写文本文件。Qt提供了Qfile类,主要用于文本文件的读写等操作管理。下面分别通过读取文件和写文件来分开描述。 读文件读取文件流程如下图:创建文件对象,指定文件名称。Qt使用QFile类来打开文本文件,创建对象时,可以直接指定文件名称。例如:QFile file("demo.txt");也可以创建文件对象后,通过函数setFileName再指定。例如:QFile f...

本文主要描述如何使用Qt读写文本文件。Qt提供了Qfile类,主要用于文本文件的读写等操作管理。
下面分别通过读取文件和写文件来分开描述。

读文件

读取文件流程如下图:
读取文件

  1. 创建文件对象,指定文件名称。

Qt使用QFile类来打开文本文件,创建对象时,可以直接指定文件名称。
例如:

QFile file("demo.txt");

也可以创建文件对象后,通过函数setFileName再指定。
例如:

QFile file;
file.setFileName("demo.txt");
  1. 判断文件是否存在

QFile类提供以下函数来判断文件是否已经存在:
bool QFile::exists() const

代码示例:

QFile file("demo.txt");
if(file.exists())
{
    qDebug()<<"exists true";
}
else
{
    qDebug()<<"exists false";
}
  1. 打开文件

读取文件前,需要先打开文件。
如果只是读取文件,使用打开模式QIODevice::ReadOnly就可以了。因为读取的是文本文件,打开模式可以设置为QIODevice::Text;

代码示例:

QFile file("demo.txt");
if(file.open(QIODevice::ReadOnly | QIODevice::Text))
{
    // 打开成功
}
else
{
    // 打开失败
}
  • 如果打开文件成功,就可以执行后续读取等步骤;
  • 如果打开文件失败,则无法进行后续读取操作。

打开文件失败时,可以通过函数打印出错信息。
Qt提供函数:

QString QIODevice::errorString() const;该函数可以打印出错误信息。
QFileDevice::FileError QFileDevice::error() const; 该函数可以打印出错误码。

  1. 获取文件内容;

readAll():读取全部文件内容。
readLine():按行读取内容;
返回内容为QByteArray,可以直接转为QString。

  1. 关闭文件

文档成功打开后,结束操作后,一定要记得关闭文件。

  1. 结束

读取文件操作结束。

写文件

写文件与读文件逻辑差不多,区别在于打开方式,以及调用写入函数(读取调用读取函数)。

  • 写文件在打开文件时,需要设置打开模式与可写模式:QIODevice::WriteOnly;
  • 文件写入函数:qint64 QIODevice::write(const QByteArray &byteArray)。

文件写入结束后,一定要记得关闭文件。

其他

Qt也可以通过QFile + QTextSream的方式来读写内容,这里不详细说明啦。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。