7. QFile读写文件的基本操作
1. 小文件文件的读写
1.1 读取文件中所有的数据
QFile file(fileName); // fileName文件的路径if(file.open(QIODevice::ReadOnly)) // 以读写的方式打开文件return ; QByteArray data = file.readAll(); //方式1. 将文件的数据全部读取出来int fileSize = file.size(); // 获取文件的长度(单位:字节)data = file.read(fileSize); // 方式2. 将文件的所有数据读取出来// 从指定的位置开始读取file.seek(100) // 这是设置从100的位置读取data = file.read(1000) // 从100的位置读取1000个字节file.close(); // 使用完毕把文件关闭
1.2 一行一行的读取文件的数据
QFile file(fileName); // fileName文件的路径if(file.open(QIODevice::ReadOnly)) // 以读的方式打开文件return ;while(!file.atEnd()) // 判断文件是否结束{// 每读取一行数据,游标seek会自动往下跳,所以当seek到达末尾是atEnd()返回trueQByteArray data = file.readLine(); }file.close();
1.3 将数据写入文件中
QFile file(fileName); // fileName文件的路径if(file.open(QIODevice::WriteOnly)) // 以写的方式打开文件return ;QByteArray data ;data.resize(10);memset(data.data(),0x00,data.size());file.write(data);file.close();
1.4 通过内存映射读写文件
uchar *QFileDevice::map(qint64 offset, qint64 size, MemoryMapFlags flags = NoOptions)
- 从offset开始将文件大小字节映射到内存中。为了使映射成功,应该打开一个文件,但在映射内存之后,文件不需要保持打开状态。当QFile被销毁或使用此对象打开一个新文件时,任何未被取消映射的映射将自动取消映射。
- 映射将具有与文件相同的打开模式(读和/或写),除非使用MapPrivateOption,在这种情况下,总是可以写入映射的内存。
- 返回一个指向内存的指针,如果有错误则返回0。
QFile file(fileName); // fileName文件的路径if(file.open(QIODevice::WriteOnly)) // 以写的方式打开文件return ;uchar* pfile = file.map(0, file.size()); // 返回一个指向内存的指针,如果有错误则返回0if(pfile){// do work // memcpy(pfile,data.data(),size); // 写入数据// memcpy(data.data(),pfile,size); // 读取数据file.unmaps(pfile); // 取消映射 其实QFile对象被摧毁或者打开一个新的文件会自动取消映射}file.close();
2. 大文件的读写
在进行大文件读写是采用分段读写的思想,将大文件所有拆成一块一块的读写。
QFile file(fileName); // fileName文件的路径if(file.open(QIODevice::WriteOnly)) // 以写的方式打开文件return ;qint64 fileSize = file.size(); // 文件的长度int readSize = 1024*1024 ; // 每一次读取的数据长度,可以自由设置// file.pos()获取文件游标的位置while(!file.atEnd()) {QByteArray data = file.read(readSize )} file.close();
7. QFile读写文件的基本操作相关推荐
- Qt学习(四):qt读写文件
知识点 QFile读写文件 QFileInfo获取文件信息 QDataStream读写文件 QTextStream读写文件 内存文件QBuffer读写文件 结果演示 widget.h #ifndef ...
- qfile 创建文件_Qt之二进制文件读写
点击上方"Qt学视觉",选择"星标"公众号重磅干货,第一时间送达 想要学习的同学们还请认真阅读每篇文章,相信你一定会有所收获 除了文本文件之外,其他需要按照一定 ...
- 【解决方案】QT读写文件
下面的这些东西,在网上可能都会找到类似的文章,但是真正使用的时候,却没有办法打开对应的文件. 解决方案: 打开项目所在文件夹. 比如我这里的项目叫Test 可以看到前面两个有build-* 文件夹. ...
- C语言中文件的基本操作函数fprintf和fscanf实例介绍
C语言文章更新目录 C/C++学习资源(百度云盘链接) 计算机二级资料(过级专用) C语言学习路线(从入门到实战) 编写C语言程序的7个步骤和编程机制 C语言基础-第一个C程序 C语言基础-简单程序分 ...
- 16 操作系统第四章 文件管理 文件的基本操作 文件共享 文件保护 文件系统的层次结构
文章目录 1 文件的基本操作 1.1 创建文件 1.2 删除文件 1.3 打开文件 1.4 关闭文件 1.5 读文件 1.6 写文件 1.7 文件基本操作小结 2 文件共享 2.1 基于索引结点的共享 ...
- fstream与 C 风格(例如fread 和 fwrite )两种读写文件方法的效率比较
我觉得作者写的挺好,评论也写的很对. 目前我的项目就是在VS2008+Qt+win7上开发的.我上次总结的QFile和C语言对文件操作的性能比较.--读取double型二进制数据文件也说明了这个问题. ...
- python怎么读写文件-Python 文件I/O
Python 文件I/O 本章只讲述所有基本的 I/O 函数,更多函数请参考Python标准文档. 打印到屏幕 最简单的输出方法是用print语句,你可以给它传递零个或多个用逗号隔开的表达式.此函数把 ...
- python的文件读写方法有哪些_python读写文件的方法有哪些
python读写文件的方法有哪些 发布时间:2020-08-07 11:58:05 来源:亿速云 阅读:87 作者:小新 这篇文章主要介绍python读写文件的方法有哪些,文中介绍的非常详细,具有一定 ...
- Python中读写文件、异常和异常处理、模块和包
目录 1.读写文件 1.1 写一个文本文件text:内容为西安培华学院,读取文本文件的内容,复制这个文件text,拷贝为text2 1.2 找一张图片,复制这个图片到copy.jpg 1.3 给定一个 ...
最新文章
- vim 之中 U 命令的浅析
- 阿里全球数学竞赛第二届
- 玩转动态编译 - 高级篇:一,IL访问静态属性和字段
- unity 创建图片ui_在 Unity中 将游戏数据储存至本地文档
- jsp ajax三级联动,Spring MVC+JSP实现三级联动
- php 地图 距离,PHP计算百度地图两个GPS坐标之间距离的方法
- fortran语言能用matlab,Fortran语言转matlab语言
- html地址栏传值问题
- 微星主板节能模式怎么关闭_微星正设计一套易用化BIOS 根据散热器自动调节性能释放_笔记本新闻...
- APM中SBUS信号解析
- 时钟芯片DS1302的原理及使用
- 模拟电子电路基础——放大器理解与梳理
- MATLAB基于Randon变换的图像倾斜校正算法及实现
- 电脑远程开机控制实现 免拆机安装
- 【Vue】Vue数据及事件绑定
- AHK 区域找图功能的使用和实例子
- HTML一键打包APK工具_安卓app封装_H5打包安卓APP
- t6修改服务器ip,用友t6服务器更换ip地址
- 十个评委打分java_java评委打分系统的设计与实现.doc
- 配置maven仓库 手写maven项目 配置maven打包