Qt之读写文件
来源:互联网 发布:单片机温度控制程序 编辑:程序博客网 时间:2024/06/06 00:21
1.思路
读写文件的基本操作:
读文件写文件打开文件打开文件读取文件写入文件关闭文件关闭文件2.QFile实现读写文件
QFile类提供读写文件的接口。
它的构造函数如下:
QFile(const QString & name)
QFile(QObject * parent)
QFile(const QString & name, QObject * parent)
通过它的构造函数我们可以知道,可以直接在调用构造函数的时候直接传递文件名给QFile类,这是常用的方法,或者我们先生成QFile对象,然后调用setFileName()方法来设置文件。
其中文件名中的路径分隔符要求必须是’/’,其他分隔符QFile不支持。
然后再了解下QFile的常用函数以及打开文件的模式类型:
QFile的常用函数:
文件打开模式
模式值描述QIODevice::NotOpen0x0000不打开QIODevice::ReadOnly0x0001只读方式QIODevice::WriteOnly0x0002只写方式,如果文件不存在则会自动创建文件QIODevice::ReadWriteReadOnly | WriteOnly读写方式QIODevice::Append0x0004此模式表明所有数据写入到文件尾QIODevice::Truncate0x0008打开文件之前,此文件被截断,原来文件的所有数据会丢失QIODevice::Text0x0010读的时候,文件结束标志位会被转为’\n’;写的时候,文件结束标志位会被转为本地编码的结束为,例如win32的结束位’\r\n’QIODevice::UnBuffered0x0020不缓存下面通过代码来看看QFile的使用:
//example 1 QFile file("test.csv"); //已读写方式打开文件, //如果文件不存在会自动创建文件 if(!file.open(QIODevice::ReadWrite)){ //ReadOnly文件不存在,打开失败 //WriteOnly文件不存在,会自动创建文件 //ReadWrite文件不存在,会自动创建文件 //Append文件不存在,会自动创建文件 //Truncate文件不存在,打开失败 //Text文件不存在,打开失败 //Unbuffered文件不存在,打开失败 qDebug()<<"打开失败"; }else{ qDebug()<<"打开成功"; } //操作文件 //关闭文件 file.close();
写文件
//example 2 QFile file("test.csv"); //判断文件是否存在 if(file.exists()){ qDebug()<<"文件已存在"; }else{ qDebug()<<"文件不存在"; } //已读写方式打开文件, //如果文件不存在会自动创建文件 if(!file.open(QIODevice::ReadWrite)){ qDebug()<<"打开失败"; }else{ qDebug()<<"打开成功"; } //获得文件大小 qint64 pos; pos = file.size(); //重新定位文件输入位置,这里是定位到文件尾端 file.seek(pos); QString content = "welcome to BeiJing"; //写入文件 qint64 length = -1; length = file.write(content.toLatin1(),content.length()); if(length == -1){ qDebug()<<"写入文件失败"; }else{ qDebug()<<"写入文件成功"; } //关闭文件 file.close();
控制台运行结果:
打开文件看看里面的内容:
正是我们程序中写入的内容。
读文件
我们现在test.csv文件内准备两行数据
代码如下:
QFile file("test.csv"); //判断文件是否存在 if(file.exists()){ qDebug()<<"文件已存在"; }else{ qDebug()<<"文件不存在"; } //已读写方式打开文件, //如果文件不存在会自动创建文件 if(!file.open(QIODevice::ReadWrite)){ qDebug()<<"打开失败"; }else{ qDebug()<<"打开成功"; } //读取文件 int line = 1; //判断文件是否已经读到末尾了 while(!file.atEnd()){ char buffer[1024]; //读取一行数据 qint64 length = file.readLine(buffer,1024); if(length != -1){ qDebug()<<line++<<":"<<buffer; } } //关闭文件 file.close();
控制台输出结果如下:
和我们开始文件中准备的内容一致,表明已成功读取。
0 0
- qt 之读写文件
- Qt之读写文件
- Qt开发之文件读写
- Qt之文件详解(二)二进制文件读写
- Qt之文件详解(三)文本文件读写
- Qt开发之读写ini文件
- QT 学习之------ 读写ini文件
- Qt之设置文件的读写属性
- QT开发之config文件读写
- Qt|Qt读写ini文件
- QT 文件读写操作
- Qt 文件读写操作
- Qt读写ini文件
- Qt入门-文件读写
- Qt 读写XML文件
- QT 读写Xml文件
- QT 文件读写操作
- Qt读写ini文件
- 【Android framework】am命令启动Activity流程
- 杨氏矩阵查找
- Parcelable encountered IOException writing serializable 问题解决
- linux文件安全与权限
- Java锁----Synchronized实现原理
- Qt之读写文件
- Hibernate知识
- RHEL7.0 配置网络IP的三种方法
- android学习4-25 使用canvas绘制几何图形(在View内)
- 剑指offer(21):顺时针打印矩阵
- OpenGL入门学习
- caffe源码学习(四) layer
- OpenCv学习笔记(七)---OpenCv中的基本绘图函数,圆,椭圆,线段,矩形,多边形的绘制(2)--提高篇
- git clone简介