目录
一.QFile
QFile类提供用于读/写文件的接口, 文本文件,二进制文件,Qt资源可以用它来读写。
我们通常在构建QFile对象时就指定好文件名,也可以先不指定文件名,通过setFileName方法设置文件名。
//第一种
QFile file("file.txt");
//第二种
QFile file;
file.setFileName("file.txt");
当我们构建好QFile对象时,就可以对一个文件进行读写了,可以使用open()打开文件,close()关闭文件,flush()刷新文件。open()有三个重载的函数,一般我们使用下面这个:
参数OpenMode mode有这几种打开方式:
需要注意的是在QIODevice::WriteOnly和QIODevice::ReadWrite两种模式下文件不存在会创建一个新文件。
1.以只写方式打开一个文件,并往文件中写入数据
QFile file;
file.setFileName("file.txt");
//只读方式打开
if (!file.open(QIODevice::WriteOnly))
{
qDebug() << "Failed to open the file for writing.";
return -1;
}
//写入数据
file.write("hello world\n");
file.write("hello Qt\n");
file.close();
这个时候打开工程所在文件夹里面的file.txt文件就会发现已经写入了数据。
注意:以只写模式打开文件,不可以进行读操作
2.以只读模式打开一个文件,并读取数据
QFile readFile("file.txt");
if(!readFile.open(QIODevice::ReadOnly)){
qDebug()<<"Failed to open the file for writing";
}
//读取五个字符数据
QString str = readFile.read(5);
//移动光标到文件头
readFile.seek(0);
//读取全部数据
QString str1 = readFile.readAll();
//移动光标到文件头
readFile.seek(0);
//读取一行数据
QString str2 = readFile.readLine();
//打印调试信息
qDebug()<<str<<endl;
qDebug()<<str1<<endl;
qDebug()<<str2<<endl;
readFile.close();
以只读模式打开文件,打开失败打印调试信息,读数据时有多种方法:read()读取多少位数据 上面read(5)就是读取前五位数据为”hello“;readAll()读取所有数据;readLine()读取一行数据;
注意:
1.每次读写操作,需要将光标移到文件最开始的位置用seek()方法,否则可能和预期不符;
2.只读模式下不可以进行写操作;
3.以可读可写打开文件,并进行读写操作;
QFile readWriteFile("file.txt");
if(!readWriteFile.open(QIODevice::ReadWrite)){
qDebug()<<"Failed to open the file for writing";
}
//移动光标到文件末尾
readWriteFile.seek(file.size());
//在文件末尾写入
readWriteFile.write("Good\n");
//移动光标到文件开头
readWriteFile.seek(0);
//从文件头开始读取数据
QString str3 = readWriteFile.readAll();
qDebug()<<str3<<endl;
readWriteFile.close();
注意:
1.每次打开文件光标位置在文件头;
2.在读写模式下写数据会从光标开始处覆盖掉原始数据,覆盖长度为写入数据长度,若当前光标位置后无数据,即文件末尾,则将数据追加到文件中;
4.以追加模式打开文件 并写入数据
//追加方式打开
QFile appendFile("file.txt");
if(!appendFile.open(QIODevice::Append)){
qDebug()<<"Failed to open the file for writing";
}
//光标自动定位到文件末尾
appendFile.write("Great");
appendFile.close();
注意:
1.追加模式下光标默认在文件末尾,因此要读取数据要重新打开文件读取数据;
2.每次打开文件都要close()关闭文件;
二.QFileInfo
QFileInfo类提供了获取文件信息的一些接口,比如文件名,文件路径,创建时间,文件后缀,文件大小等;
QFileInfo info("file.txt");
qDebug()<<"文件路径:"<<info.filePath();
qDebug()<<"文件名:"<<info.fileName();
qDebug()<<"文件大小:"<<info.size();
qDebug()<<"文件后缀:"<<info.suffix();
下篇更新Qt中对json数据的基本处理方式,感谢阅读
本文详细介绍了QFile类在Qt中的使用,包括以只写、只读、读写和追加模式打开文件进行数据操作,并强调了各种模式下的注意事项。同时,还提到了QFileInfo类,用于获取文件的相关信息如路径、大小、后缀等。
600

被折叠的 条评论
为什么被折叠?



