[Qt] Qt删除文本文件中的某一行

需求

我们经常读一个文件或者直接往一个空白文件中写文本,那么该如何使用Qt在一个文本文件中删除某一行

代码

cpp 复制代码
#include <QCoreApplication>
#include <QIODevice>
#include <QFile>
#include <QTextStream>
#include <QString>
#include <QDebug>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    QFile file(QStringLiteral("F:/QTCode/deleteLineInFile/新建文本文档.txt"));
    QString allText;
    if(file.open(QIODevice::ReadWrite)){
        QTextStream stream(&file);
        stream.setCodec("UTF-8");
        while(!stream.atEnd()){
            QString lineStr = stream.readLine();
            if(lineStr == QStringLiteral("也是")){
                continue;
            }
            allText.append(lineStr);
            if(!stream.atEnd()){
                allText.append('\r');
                allText.append('\n');
            }
        }
        file.close();
        if(file.open(QIODevice::WriteOnly | QIODevice::Truncate)){
            file.write(allText.toUtf8());
            file.close();
            qDebug() << QStringLiteral("操作成功");
        }else{
            qDebug() << QStringLiteral("写文件失败");
        }
    }else{
        qDebug() << QStringLiteral("打开文件失败");
    }
    return a.exec();
}
相关推荐
Quz4 小时前
QML Repeater 数据模型:ListModel 与 C++ QAbstractListModel
qt
Quz4 小时前
QML Repeater 基础用法:整数、JS 数组、字符串数组三种模型
qt
江湖人称菠萝包11 小时前
【Qt】《Qt 5.9 C++开发指南》笔记-Chapter3-Qt类库概述
笔记·qt·qt5
qq_3449205612 小时前
Qt事件过滤器
开发语言·c++·qt
sunriver200012 小时前
【Qt】由于找不到 Qt6Core5Compatd.dll
qt·qt6core5compatd
qq_3449205613 小时前
Qt 鼠标双击QLabel全屏显示图像
c++·qt
江湖人称菠萝包15 小时前
【Qt】《Qt 5.9 C++开发指南》笔记-Chapter4-常用界面设计组件
笔记·qt·qt5
实心儿儿16 小时前
Qt — QtCreator 创建项目
qt
Quz1 天前
QML 常见的四种导航布局
qt
江湖人称菠萝包1 天前
【Qt】《Qt 5.9 C++开发指南》笔记-Chapter2-GUI应用程序设计基础
笔记·qt·qt5