Qt之文件操作 基础详解

Qt之文件操作 基础详解目录 一 QFile 1 以只写方式打开一个文件 并往文件中写入数据 2 以只读模式打开一个文件 并读取数据 3 以可读可写打开文件 并进行读写操作 4 以追加模式打开文件 并写入数据 二 QFileInfo 一 QFile QFile 类提供用于读 写文件的接口

大家好,我是讯享网,很高兴认识大家。

目录

一.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数据的基本处理方式,感谢阅读

小讯
上一篇 2025-02-09 17:55
下一篇 2025-01-15 07:14

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/118388.html