qt5-入门-文件读写

参考:
Qt 二进制文件读写_w3cschool
https://www.w3cschool.cn/learnroadqt/7nvo1j5k.html

C++ GUI Programming with Qt 4, Second Edition

本地环境:
win10专业版,64位,Qt 5.12

代码已经测试通过。其他例子日后更新。


理论知识

Qt通过QIODevice提供IO的抽象,按字节块读取文件。常见的有:

名称作用顺序
QFile访问本地文件系统或嵌入的资源随机
QTemporaryFile本地,临时文件随机
QBuffer读写 QByteArray随机
QProcess运行外部程序,处理进程间通讯顺序,只能访问一遍
QTcpSocketTCP 协议网络数据传输顺序,只能访问一遍
QUdpSocket传输 UDP 报文顺序,只能访问一遍
QSslSocket使用 SSL/TLS 传输数据顺序,只能访问一遍

注:前三行的随机表示可以在任何位置访问任意次数,也可以使用QIODevice::seek()来重定位文件指针。

访问方式:

  • QDataStream:以二进制的方式访问
  • QTextStream:以文本方式访问

文件信息管理:

  • QDir:文件夹相关事务
  • QFileInfo:文件相关事务,如查看文件信息

文本文件读写实例:简单

// 文件读写
int main(int argc, char *argv[])
{QCoreApplication app(argc, argv);QString fileName = "example.txt";// 写入文本文件QFile file(fileName);if (file.open(QIODevice::WriteOnly | QIODevice::Text)){QTextStream stream(&file);stream << "Hello, world!" << endl;stream << "This is an example file." << endl;file.close();qDebug() << "File saved.";}else{qDebug() << "Failed to open file for writing.";}// 读取文本文件if (file.open(QIODevice::ReadOnly | QIODevice::Text)){QTextStream stream(&file);while (!stream.atEnd()){QString line = stream.readLine();qDebug() << line;}file.close();}else{qDebug() << "Failed to open file for reading.";}return app.exec();
}

获取文件信息

#include <QFileInfo>
#include <QString>int main()
{QString filePath = "C:/path/to/myfile.txt";QFileInfo fileInfo(filePath);// 判断文件是否存在if (fileInfo.exists()) {qDebug() << "File exists";// 获取后缀QString fileExtension = fileInfo.suffix();// 获取文件名QString fileName = fileInfo.fileName();} else {qDebug() << "File does not exist";}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/804665.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ubuntu系统安装k8s1.28精简步骤

目录 一、规划二、环境准备2.1 配置apt仓库配置系统基本软件仓库配置k8s软件仓库安装常用软件包 2.2 修改静态ip、ntp时间同步、主机名、hosts文件、主机免密2.3 内核配置2.4 关闭防火墙、selinux、swap2.5 安装软件安装docker安装containerd安装k8s软件包 三、安装配置k8s3.1 …

二叉树的前序遍历、中序遍历、后序遍历

二叉树的前序遍历、中序遍历、后序遍历 一、递归算法的三个要素二、144. 二叉树的前序遍历三、94. 二叉树的中序遍历四、145. 二叉树的后序遍历 一、递归算法的三个要素 1、确定递归函数的参数和返回值&#xff1a; 确定哪些参数是递归的过程中需要处理的&#xff0c;那么就在…

宁波宠物展|2024中国(宁波)国际宠物用品博览会

中国(宁波)国际宠物用品博览会 地点&#xff1a;宁波国际会展中心 时间&#xff1a;2024年11月14-16日 主办单位:凤麟展览(宁波)有限公司 协办单位:浙江省宠物产业协会 宁波市跨境电子商务协会 宁波欧德国际商务咨询服务有限公司 宁波扬扬会议展览有限公司 20000方展览…

【FAQ】HarmonyOS SDK 闭源开放能力 —Push Kit(3)

1.问题描述&#xff1a; 调用HarmonyOS API发送通知&#xff0c;能查到状态是送达终端设备&#xff0c;但是终端设备上没收到通知卡片。 解决方案&#xff1a; 通知应用大图标不能超过30kb&#xff0c;通知参数限制&#xff0c;参考如下&#xff1a;https://gitee.com/openh…

免杀对抗Go魔改二开Fscan扫描FRP代理

安全工具-Goland-FRP魔改二开-特征消除 在渗透测试过程中&#xff0c;有后渗透需求时&#xff0c;需要进行反向代理&#xff0c;最早接触的是frp工具&#xff0c;但是在使用过程当中会有配置文件落地&#xff0c;如果忘记删除的情况下容易被溯源C2地址。针对这种情况可以将配置…

手写简易操作系统(二十八)--实现简单shell

前情提要 Shell是计算机操作系统中的一个重要概念&#xff0c;它是用户与操作系统内核之间的接口。Shell接受用户的命令&#xff0c;并将其转换为操作系统能够理解的指令&#xff0c;然后执行这些指令&#xff0c;并将执行结果返回给用户。 Shell可以理解为一个命令解释器&am…

邦芒解析:职场最不可取的五种跳槽的理由

跳槽可以有一千种理由&#xff0c;但是一旦你跳了&#xff0c;这些理由就已经不重要了。因为你总归还是要去寻找新目标公司&#xff0c;而那里的HR&#xff0c;接受不了&#xff01;比如以下这些跳槽理由&#xff01; 1、对上份工作不感兴趣 这样的跳槽理由会使招聘者误认为你很…

基于Python语言构建神经网络识别手写数字的研究【完整版请下载pdf】

一、神经网络简介 (一)神经元的工作原理 从百度百科上解释是:神经元即神经细胞,是神经系统最基本的结构和功能单位,分为细胞体和突起两部分,细胞体由细胞核、细胞膜、细胞质组成,具有联络和整合输入信息并传出信息的作用。突起有树突和轴突两种,树突短而分枝多,直接…

网络安全之权限维持那点事

权限维持 一旦黑客成功地入侵了目标系统&#xff0c;他们通常会尝试保持对系统的持久访问权&#xff0c;以便继续执行恶意活动&#xff0c;如窃取敏感数据、植入恶意软件、破坏系统功能等。 权限维持的过程可能包括以下几个方面&#xff1a; 后门植入&#xff1a;黑客可能会在…

第十届蓝桥杯大赛个人赛省赛(软件类) CC++ 研究生组-RSA解密

先把p&#xff0c;q求出来 #include<iostream> #include<cmath> using namespace std; typedef long long ll; int main(){ll n 1001733993063167141LL, sqr sqrt(n);for(ll i 2; i < sqr; i){if(n % i 0){printf("%lld ", i);if(i * i ! n) pri…

系统调用接口(如read、write等)是如何实现硬件驱动的?

在ARM架构中&#xff0c;软件控制硬件通常通过操作系统内核和设备驱动程序来实现。 1. **操作系统内核&#xff1a;** 操作系统内核是系统的核心软件&#xff0c;负责管理系统资源、提供服务以及调度任务。在ARM架构中&#xff0c;操作系统内核负责管理软件与硬件之间的交互。…

xss.pwnfunction-Ah That‘s Hawt

<svg/onloadalert%26%2340%3B1%26%2341%3B> <svg/>是一个自闭合形式 &#xff0c;当页面或元素加载完成时&#xff0c;onload 事件会被触发&#xff0c;从而可以执行相应的 JavaScript 函数

harmonyOS安装ohpm

下载 下载地址 HUAWEI DevEco Studio和SDK下载和升级 | 华为开发者联盟 初始化 注意&#xff1a;初始化ohpm前&#xff0c;需先完成node.js环境变量配置 1.解压文件&#xff0c;进入commandline-tools-windows-2.0.0.2\command-line-tools\ohpm\bin 2.执行&#xff1a; init.ba…

《论文阅读》构建情感共识并利用未配对数据生成共情对话 ACL 2021

《论文阅读》构建情感共识并利用未配对数据生成共情对话 ACL 2021 前言简介模型构架损失函数实验结果前言 亲身阅读感受分享,细节画图解释,再也不用担心看不懂论文啦~ 无抄袭,无复制,纯手工敲击键盘~ 今天为大家带来的是《Constructing Emotion Consensus and Utilizing …

web蓝桥杯真题:年度明星项目

代码及注释&#xff1a; //全部数据 var allData [] // 每次需要加载的数量 var num 15// TODO: 请在此补充代码实现项目数据文件和翻译数据文件的请求功能 $.get({url: ./js/all-data.json}).then(res > {allData resloading(allData, num) //初始加载数据 }) $.get(…

第十四届蓝桥杯大赛软件赛省赛C/C++ 大学 B 组A-E题(go、java实现)

第十四届蓝桥杯大赛软件赛省赛C/C 大学 B 组 A题&#xff1a;日期统计B题&#xff1a;01串的熵C题&#xff1a;冶炼金属D题&#xff1a;飞机降落E题&#xff1a;接龙数列 A题&#xff1a;日期统计 直接遍历2023年每一天&#xff0c;看数组中是否有符合的 java的coding如下&…

中国1000米分辨率年最大增强型植被指数(EVI)数据集

增强型植被指数&#xff08;EVI&#xff09;是在归一化植被指数&#xff08;NDVI&#xff09;改善出来的&#xff0c;根据大气校正所包含的影像因子大气分子、气溶胶、薄云、水汽和臭氧等因素进行全面的大气校正&#xff0c;EVI大气校正分三步&#xff0c;第一步是去云处理。第…

3.SpringMVC程序开发

文章目录 1.什么是 Spring MVC&#xff1f;1.1 MVC 定义1.2 MVC 和 Spring MVC 的关系 2.为什么要学 Spring MVC&#xff1f;3.怎么学 Spring MVC&#xff1f;3.1 Spring MVC 创建和连接3.1.1 创建 Spring MVC 项⽬3.1.2 RequestMapping 注解介绍3.1.3 RequestMapping 是 post …

HDMI+钡铼ARM工控机:打造工业4.0时代的智能车间

在深入探讨这款钡铼技术ARM工业计算机的功能特点时&#xff0c;我们发现其在实现车间实时管理、数据分析和决策支持方面的优势尤其突出&#xff1a; 通过HDMI接口连接至大型显示器或者智能电视&#xff0c;这款ARM工业计算机能够建立起一套完整的车间视觉管理系统&#xff0c;使…

快手视频没有人播剧,一天做了4800 ,轻松解决版权纠纷,手机上也可以实现24钟头躺着赚钱

项目简介&#xff1a; 对于热爱追剧的人来说&#xff0c;这个项目可以作为一个很好的副业选择。在观看电视剧的同时&#xff0c;还能有机会赚钱。通过使用快手直播伴侣进行24小时不间断的直播&#xff0c;播放热门电视剧或者搞笑小品&#xff0c;通常能吸引大量观众&#xff0…