Drei Methoden zum Lesen und Schreiben von Qt-Dateien (QFile, QTextStream, QDataStream)

In Qt kann das Lesen und Schreiben von Dateien durch verschiedene Methoden wie QFile, QTextStreamund usw. realisiert werden. Die folgenden drei Methoden werden jeweils vorgestellt und die spezifischen Codes zum Erstellen und Lesen von Dateien werden angegeben:QDataStream

1. Verwenden Sie QFile für Dateioperationen

So erstellen Sie ein QFileObjekt und verwenden dieses Objekt zum Lesen der Textdatei unter dem angegebenen Pfad. Dabei handelt es sich um QFiledie von Qt bereitgestellte Dateioperationsklasse. readAll()Sie können den Inhalt der gesamten Datei lesen, indem Sie ihre Mitgliedsfunktionen aufrufen Lesen der Datei Sie müssen die Datei zuerst öffnen und sie schließlich nach dem Lesen schließen, andernfalls wird ein Fehler gemeldet.

#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. Verwenden Sie QTextStream für Textdateioperationen

Erstellen Sie ein QTextStreamObjekt und verwenden Sie dieses Objekt, um Daten in die Textdatei unter dem angegebenen Pfad zu schreiben. Beachten Sie, dass die Datei nach dem Schreiben der Daten geschlossen werden muss, da sonst die Daten nicht in die Datei geschrieben werden können.

#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. Verwenden Sie QDataStream für Binärdateioperationen

Erstellen Sie ein QDataStreamObjekt und verwenden Sie dieses Objekt, um Daten in die Binärdatei unter dem angegebenen Pfad zu schreiben. Beachten Sie, dass die Datei nach dem Schreiben der Daten geschlossen werden muss, da sonst die Daten nicht in die Datei geschrieben werden können.

#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();
}

Supongo que te gusta

Origin blog.csdn.net/qq_33867131/article/details/130360279
Recomendado
Clasificación