目录
一.QFile
1.以只写方式打开一个文件,并往文件中写入数据
2.以只读模式打开一个文件,并读取数据
3.以可读可写打开文件,并进行读写操作;
4.以追加模式打开文件 并写入数据
二.QFileInfo
一.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数据的基本处理方式,感谢阅读
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/118388.html