QFile读写文件的两种方式:
1.QFile可以单独使用。
2.QFile与QTextStream或QDataStream一起使用。
注意:不管操作系统是什么,QFile都希望文件分隔符是’/‘。不支持使用其他分隔符(例如’')。
详细请参考这里
一、QFile单独使用–读写操作
void byQFile()
{
//创建 QFile 对象,指定文件的路径
QFile file("E:\\working_files\\Qt\\PUI\\filework.txt");
//尝试打开文件,如果文件不存在将会自行创建一个
if(!file.open(QIODevice::WriteOnly|QIODevice::Text)){
qDebug()<<"文件打开失败";
}
//对文件进行写操作
file.write(QString(QStringLiteral("春眠不觉晓\n")).toStdString().c_str());
file.write(QString(QStringLiteral("处处闻啼鸟\n")).toStdString().c_str());
file.write(QString(QStringLiteral("夜来风雨声\n")).toStdString().c_str());
file.write(QString(QStringLiteral("花落知多少\n")).toStdString().c_str());
//关闭文件
file.close();
//打开文件
if(!file.open(QIODevice::ReadOnly|QIODevice::Text)){
qDebug()<<"文件打开失败";
}
//对文件进行读操作
//每次都去文件中的一行,然后输出读取到的字节数组
while (!file.atEnd()) {
QByteArray line = file.readLine();
qDebug()<<line.toStdString().c_str();
}
file.close();
}
二、QFile与QTextStream一起使用
void byQFileAndStream()
{
//创建 QFile 对象,指定文件的路径
QFile file("E:\\working_files\\Qt\\PUI\\filework.txt");
//尝试打开文件,如果文件不存在将会自行创建一个
if(!file.open(QIODevice::WriteOnly|QIODevice::Text)){
qDebug()<<"文件打开失败";
}
QTextStream in(&file);
//向文件中写入两行字符串
in << QString(QStringLiteral("春眠不觉晓\n"))\
<< QString(QStringLiteral("处处闻啼鸟\n"))\
<< QString(QStringLiteral("夜来风雨声\n"))\
<< QString(QStringLiteral("花落知多少\n"));
//关闭文件
file.close();
//对文件进行读操作
if(!file.open(QIODevice::ReadOnly|QIODevice::Text)){
qDebug()<<"文件打开失败";
}
QTextStream out(&file);
//直至读取结束
while(!out.atEnd()){
QString str;
//从文件中读取一个字符串
out >> str;
qDebug() << str;
}
file.close();
}