Qt ファイルを読み書きする 3 つの方法 (QFile、QTextStream、QDataStream)

QFileQt では、やQTextStreamなど、さまざまなメソッドを利用してファイルの読み書きをQDataStream実現できます。 以下の 3 つのメソッドをそれぞれ紹介し、ファイルの作成と読み込みを行うための具体的なコードを示します。

1. ファイル操作には QFile を使用します

QFileオブジェクトを作成し、このオブジェクトを使用して指定されたパスの下にあるテキスト ファイルを読み取る方法。 QFileQt が提供するファイル操作クラスは、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