【QT】文本文件读写

本文介绍了使用QT库进行文本文件的读写,包括QFile的不同打开模式,如只读、只写、读写、追加和截断。并详细阐述了QFile与QTextStream结合使用的方法,以及如何解决中文乱码问题,通过设置UTF-8编码确保正确显示汉字。
摘要由CSDN通过智能技术生成
        文件的读写是很多应用程序具有的功能,甚至某些应用程序就是围绕着某一种格式文件的处 理而开发的,所以文件读写是应用程序开发的一个基本功能。

1 实例功能概述

        文本文件是指以纯文本格式存储的文件,例如用QtCreator编写的c++程序的头文件(.h文 件)和源程序文件(.cpp文件)。HTML和XML文件也是纯文本文件,只是其读取之后需要对内 容进行解析之后再显示。
Qt提供了两种读写纯文本文件的基本方法,一种是用QFile类的IODevice读写功能直接进行 读写,另一种是利用QFile和QTextStream结合起来,用流(Stream)的方法进行文件读写。
        实例samp7_1演示了这两种方法读写文本文件,其运行时窗口如图7-1所示。实例不仅演示 了如何打开文本文件,还有文件保存功能。
图7-1 实例samp7_1的运行时窗口

2 QFile读写文本文件

       QFile类是直接与10设备打交道,进行文件读写操作的类,使用QFile可以直接打开或保存文本文件。 图7-1工具栏上的“QFile直接打开”按钮用QFile类的功能直接打开文本文件,按钮 的槽函数及相关函数的代码如下:
void MainWindow::on_actOpen_IODevice_triggered()
{//打开文件

    QString curPath=QDir::currentPath();//获取系统当前目录
    QString dlgTitle="打开一个文件"; //对话框标题
    QString filter="程序文件(*.h *.cpp);;文本文件(*.txt);;所有文件(*.*)"; //文件过滤器
    QString aFileName=QFileDialog::getOpenFileName(this,dlgTitle,curPath,filter);

    if (aFileName.isEmpty())
        return;

    openTextByIODevice(aFileName);
}

bool MainWindow::openTextByIODevice(const QString &aFileName)
{//用IODevice方式打开文本文件
    QFile   aFile(aFileName);
    if (!aFile.exists()) //文件不存在
        return false;

    if (!aFile.open(QIODevice::ReadOnly | QIODevice::Text))
        return false;

    ui->textEditDevice->setPlainText(aFile.readAll());
    aFile.close();

    ui->tabWidget->setCurrentIndex(0);
    return  true;
  • 22
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冷凝女子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值