Qt 文件读写的三种方法(QFile,QTextStream,QDataStream)

在 Qt 中,文件的读写可以使用 QFileQTextStreamQDataStream 等多种方法来实现,下面分别介绍这三种方法,并且给出具体的创建和读取文件的代码:

1、使用 QFile 进行文件操作

如何创建一个 QFile 对象,并使用该对象读取指定路径下的文本文件,其中 QFile 是 Qt 提供的文件操作类,通过调用其成员函数 readAll() 可以读取整个文件的内容,需要注意的是,在读取文件时需要先打开文件,最后在读取完成后关闭文件,否则会报错;

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

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

    // 定义文件名
    QString fileName = "C:\\cpp\\qt\\widget\\qq.txt";

    // 创建文件对象
    QFile file(fileName);

    // 打开文件,并且以只读方式进行读取
    if (file.open(QIODevice::ReadOnly | QIODevice::Text)) {
    
    

        // 读取文件内容
        QByteArray fileData = file.readAll();

        // 关闭文件
        file.close();

        // 输出读取的文件内容
        qDebug() << "读取的文件内容:" << fileData;
    } else {
    
    
        // 如果文件打开失败,则输出错误信息
        qDebug() << "打开文件失败!";
    }

    return a.exec();
}

2、使用 QTextStream 进行文本文件操作

创建一个 QTextStream 对象,并使用该对象向指定路径下的文本文件中写入数据,需要注意的是,在写入数据后需要关闭文件,否则会出现数据无法写入文件的情况;

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

int main(int argc, char *argv[])
{
    
    
    QCoreApplication a(argc, argv);
    // 定义文件名
    QString fileName = "C:\\cpp\\qt\\widget\\ww.txt";

    // 创建文件对象
    QFile file(fileName);

    // 打开文件,并且以写入方式进行操作
    if (file.open(QIODevice::WriteOnly | QIODevice::Text)) {
    
    

        // 绑定 QTextStream 对象和文件对象
        QTextStream out(&file);

        // 写入数据到文件中
        out << "Hello World!";

        // 关闭文件
        file.close();

        // 重新打开文件并以只读方式进行操作
        if (file.open(QIODevice::ReadOnly | QIODevice::Text)) {
    
    
            QTextStream in(&file);

            // 读取文件内容
            QString fileContent = in.readAll();

            // 关闭文件
            file.close();

            // 输出读取的文件内容
            qDebug() << "读取的文件内容:" << fileContent;
        } else {
    
    
            // 如果文件打开失败,则输出错误信息
            qDebug() << "打开文件失败!";
        }
    } else {
    
    
        // 如果文件打开失败,则输出错误信息
        qDebug() << "打开文件失败!";
    }

    return a.exec();
}
3、使用 QDataStream 进行二进制文件操作

创建一个 QDataStream 对象,并使用该对象向指定路径下的二进制文件中写入数据,需要注意的是,在写入数据后需要关闭文件,否则会出现数据无法写入文件的情况;

#include <QCoreApplication>
#include <QFile>
#include <QDataStream>
#include <QDebug>

int main(int argc, char *argv[])
{
    
    
    QCoreApplication a(argc, argv);
    // 定义文件名
    QString fileName = "C:\\cpp\\qt\\widget\\ee.txt";

    // 创建文件对象
    QFile file(fileName);

    // 打开文件,并且以写入方式进行操作
    if (file.open(QIODevice::WriteOnly)) {
    
    

        // 绑定 QDataStream 对象和文件对象
        QDataStream out(&file);

        // 写入数据到文件中
        out << QString("这是二进制文件");

        // 关闭文件
        file.close();

        // 重新打开文件并以只读方式进行操作
        if (file.open(QIODevice::ReadOnly)) {
    
    
            QDataStream in(&file);

            // 读取文件内容
            QString fileContent;
            in >> fileContent;

            // 关闭文件
            file.close();

            // 输出读取的文件内容
            qDebug() << "读取的文件内容:" << fileContent;
        } else {
    
    
            // 如果文件打开失败,则输出错误信息
            qDebug() << "打开文件失败!";
        }
    } else {
    
    
        // 如果文件打开失败,则输出错误信息
        qDebug() << "打开文件失败!";
    }

    return a.exec();
}

猜你喜欢

转载自blog.csdn.net/qq_33867131/article/details/130360279
今日推荐