QtC++读取文件内容

QFile file("../sys_database/canshu.txt");            //目标文件路径
if(!file.open(QIODevice::ReadOnly | QIODevice::Text))
{
    QMessageBox::critical(this,"警告","文件读取失败!");
    return;
}
// 创建一个 QTextStream 对象,用于从文件中读取文本数据。
QTextStream in(&file);
while(!in.atEnd())
{
    QString line=in.readLine();
    global::canshu.append(line);
}
file.close();

QTextStream 是 Qt 框架中的一个类,用于处理文本流。它提供了一种方便的方法来读取和写入文本数据,特别是与文件和字符串相关的操作。以下是 QTextStream 的一些主要功能和用法:

QString line = in.readLine();
QString content = in.readAll();
  • atEnd(): 检查是否到达文件末尾。
while (!in.atEnd()) 
{QString line = in.readLine(); // 处理行数据
}
  • perator<<: 重载的插入运算符,用于写入数据。
QFile file("output.txt");
if (file.open(QIODevice::WriteOnly | QIODevice::Text))
 {
    QTextStream out(&file);
    out << "Hello, World!\n";
    file.close();
}
  • setCodec(): 设置文本流的编码格式。
QTextStream stream(&file);
stream.setCodec("UTF-8");
  • flush(): 刷新缓冲区,确保所有数据都被写入。
stream.flush();

综合示例

#include <QCoreApplication>
#include <QFile>
#include <QTextStream>
#include <QDebug>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    // 写入文件
    QFile writeFile("example.txt");
    if (writeFile.open(QIODevice::WriteOnly | QIODevice::Text)) {
        QTextStream out(&writeFile);
        out << "Hello, World!\n";
        out << "This is a test file.\n";
        writeFile.close();
    } else {
        qWarning() << "Could not open file for writing!";
    }

    // 读取文件
    QFile readFile("example.txt");
    if (readFile.open(QIODevice::ReadOnly | QIODevice::Text)) {
        QTextStream in(&readFile);
        while (!in.atEnd()) {
            QString line = in.readLine();
            qDebug() << line;
        }
        readFile.close();
    } else {
        qWarning() << "Could not open file for reading!";
    }

    return a.exec();
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值