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)
  1. 从offset开始将文件大小字节映射到内存中。为了使映射成功,应该打开一个文件,但在映射内存之后,文件不需要保持打开状态。当QFile被销毁或使用此对象打开一个新文件时,任何未被取消映射的映射将自动取消映射。
  2. 映射将具有与文件相同的打开模式(读和/或写),除非使用MapPrivateOption,在这种情况下,总是可以写入映射的内存。
  3. 返回一个指向内存的指针,如果有错误则返回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读写文件的基本操作相关推荐

  1. Qt学习(四):qt读写文件

    知识点 QFile读写文件 QFileInfo获取文件信息 QDataStream读写文件 QTextStream读写文件 内存文件QBuffer读写文件 结果演示 widget.h #ifndef ...

  2. qfile 创建文件_Qt之二进制文件读写

    点击上方"Qt学视觉",选择"星标"公众号重磅干货,第一时间送达 想要学习的同学们还请认真阅读每篇文章,相信你一定会有所收获 除了文本文件之外,其他需要按照一定 ...

  3. 【解决方案】QT读写文件

    下面的这些东西,在网上可能都会找到类似的文章,但是真正使用的时候,却没有办法打开对应的文件. 解决方案: 打开项目所在文件夹. 比如我这里的项目叫Test 可以看到前面两个有build-* 文件夹. ...

  4. C语言中文件的基本操作函数fprintf和fscanf实例介绍

    C语言文章更新目录 C/C++学习资源(百度云盘链接) 计算机二级资料(过级专用) C语言学习路线(从入门到实战) 编写C语言程序的7个步骤和编程机制 C语言基础-第一个C程序 C语言基础-简单程序分 ...

  5. 16 操作系统第四章 文件管理 文件的基本操作 文件共享 文件保护 文件系统的层次结构

    文章目录 1 文件的基本操作 1.1 创建文件 1.2 删除文件 1.3 打开文件 1.4 关闭文件 1.5 读文件 1.6 写文件 1.7 文件基本操作小结 2 文件共享 2.1 基于索引结点的共享 ...

  6. fstream与 C 风格(例如fread 和 fwrite )两种读写文件方法的效率比较

    我觉得作者写的挺好,评论也写的很对. 目前我的项目就是在VS2008+Qt+win7上开发的.我上次总结的QFile和C语言对文件操作的性能比较.--读取double型二进制数据文件也说明了这个问题. ...

  7. python怎么读写文件-Python 文件I/O

    Python 文件I/O 本章只讲述所有基本的 I/O 函数,更多函数请参考Python标准文档. 打印到屏幕 最简单的输出方法是用print语句,你可以给它传递零个或多个用逗号隔开的表达式.此函数把 ...

  8. python的文件读写方法有哪些_python读写文件的方法有哪些

    python读写文件的方法有哪些 发布时间:2020-08-07 11:58:05 来源:亿速云 阅读:87 作者:小新 这篇文章主要介绍python读写文件的方法有哪些,文中介绍的非常详细,具有一定 ...

  9. Python中读写文件、异常和异常处理、模块和包

    目录 1.读写文件 1.1 写一个文本文件text:内容为西安培华学院,读取文本文件的内容,复制这个文件text,拷贝为text2 1.2 找一张图片,复制这个图片到copy.jpg 1.3 给定一个 ...

最新文章

  1. vim 之中 U 命令的浅析
  2. 阿里全球数学竞赛第二届
  3. 玩转动态编译 - 高级篇:一,IL访问静态属性和字段
  4. unity 创建图片ui_在 Unity中 将游戏数据储存至本地文档
  5. jsp ajax三级联动,Spring MVC+JSP实现三级联动
  6. php 地图 距离,PHP计算百度地图两个GPS坐标之间距离的方法
  7. fortran语言能用matlab,Fortran语言转matlab语言
  8. html地址栏传值问题
  9. 微星主板节能模式怎么关闭_微星正设计一套易用化BIOS 根据散热器自动调节性能释放_笔记本新闻...
  10. APM中SBUS信号解析
  11. 时钟芯片DS1302的原理及使用
  12. 模拟电子电路基础——放大器理解与梳理
  13. MATLAB基于Randon变换的图像倾斜校正算法及实现
  14. 电脑远程开机控制实现 免拆机安装
  15. 【Vue】Vue数据及事件绑定
  16. AHK 区域找图功能的使用和实例子
  17. HTML一键打包APK工具_安卓app封装_H5打包安卓APP
  18. t6修改服务器ip,用友t6服务器更换ip地址
  19. 十个评委打分java_java评委打分系统的设计与实现.doc
  20. 配置maven仓库 手写maven项目 配置maven打包

热门文章

  1. 微信支付的支付流程涉及哪些接口
  2. 狂暴者 pat basic 练习二十九 旧键盘
  3. 【python】 一文洞悉Python必备50种算法(附解析)
  4. 蛮易信你们懂的,不过我最爱武器大师
  5. 股票数据接口level2使用技巧分享!
  6. idea 缺失右侧maven窗口
  7. 程序员被虐的场景,你经历过吗?
  8. mysql生成固定位数随机数_mysql生成指定位数的随机数
  9. WIN10控制面板没有bitlocker的如何处理
  10. 升级及安装显卡驱动,安装cuda