In Qt kann das Lesen und Schreiben von Dateien durch verschiedene Methoden wie QFile
, QTextStream
und 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
QFile
Objekt und verwenden dieses Objekt zum Lesen der Textdatei unter dem angegebenen Pfad. Dabei handelt es sich umQFile
die 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
QTextStream
Objekt 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
QDataStream
Objekt 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();
}