Qt-系统文件相关介绍使用(61)

目录

描述

输⼊输出设备类

打开/读/写/关闭

使用

先初始化,创建出大致的样貌

输入框设置

绑定槽函数

保存文件

打开文件

提取文件属性


描述

在C/C++ Linux 中我们都接触过关于文件的操作,当然 Qt 也会有对应的文件操作的

⽂件操作是应⽤程序必不可少的部分。Qt 作为⼀个通⽤开发库,提供了跨平台的⽂件操作能⼒。Qt提供了很多关于⽂件的类,通过这些类能够对⽂件系统进⾏操作,如⽂件读写、⽂件信息获取、⽂件复制或重命名等

输⼊输出设备类

在 Qt 中,⽂件读写的类为 QFile 。QFile 的⽗类为 QFileDevice ,QFileDevice 提供了⽂件交互操作的底层功能。 QFileDevice的⽗类是 QIODevice,QIODevice 的⽗类为 QObject ,QIODevice 是 Qt 中所有输⼊输出设备(input/output device,简称 I/O 设备)的基础类,I/O 设备就
是能进⾏数据输⼊和输出的设备,例如⽂件是⼀种 I/O 设备,⽹络通信中的 socket 是 I/O 设备,串⼝、蓝⽛等通信接⼝也是 I/O 设备,所以它们也是从 QIODevice 继承来的。Qt 中主要的⼀些I/O  设备类的继承关系如下图所⽰:

• QFile 是⽤于⽂件操作和⽂件数据读写的类,使⽤ QFile 可以读写任意格式的⽂件。
• QSaveFile 是⽤于安全保存⽂件的类。使⽤ QSaveFile 保存⽂件时,它会先把数据写⼊⼀个临时⽂件,成功提交后才将数据写⼊最终的⽂件。如果保存过程中出现错误,临时⽂件⾥的数据不会被写⼊最终⽂件,这样就能确保最终⽂件中不会丢失数据或被写⼊部分数据。在保存⽐较⼤的⽂件或复杂格式的⽂件时可以使⽤这个类,例如从⽹络上下载⽂件等。
• QTemporaryFile 是⽤于创建临时⽂件的类.使⽤函数 QTemporaryFile::open() 就能创建⼀个⽂件名唯⼀的临时⽂件,在QTemporaryFile 对象被删除时,临时⽂件被⾃动删除。
• QTcpSocket 和 QUdpSocket 是分别实现了 TCP 和 UDP 的类。
• QSerialPort 是实现了串⼝通信的类,通过这个类可以实现计算机与串⼝设备的通信。
• QBluetoothSocket 是⽤于蓝⽛通信的类。⼿机和平板计算机等移动设备有蓝⽛通信模块,笔记本电脑⼀般也有蓝⽛通信模块。通过QBluetoothSocket类,就可以编写蓝⽛通信程。如编程实现笔记本电脑与⼿机的蓝⽛通信。
• QProcess 类⽤于启动外部程序,并且可以给程序传递参数。
• QBuffer 以⼀个 QByteArray 对象作为数据缓冲区,将 QByteArray 对象当作⼀个 I/O 设备来读写 

Qt相关的继承

打开/读/写/关闭

Qt 中对这四个重要的操作进行了封装

打开

读 继承自 QFile 的父父类也就是 QIODevice 之中

写 也继承自 QFile 的父父类也就是 QIODevice 之中

关闭

关闭 也继承自 QFile 的父父类也就是 QIODevice 之中

使用

实现一个功能,左上角有一个按钮,点击按钮可以选择打开文件或者保存文件,下面的输入框

先初始化,创建出大致的样貌

输入框设置

先进行测试,信号槽是否功能正常

绑定槽函数

保存文件

图下我们已经保存下来了 

记事本打开正常 

打开文件

首先我们修改文本内容

如下,我们成功打开了文件,并且读取到了文件中的数据 

这里我们需要注意,这里只能够读取文本文件,二进制文件是读取不了的,要想读取二进制文件,需要用其他的函数去读取

提取文件属性

在Qt中 我们可以使用 QFileInfo 这个类来获取打开文件的各种属性

QFileInfo 是 Qt 提供的⼀个⽤于获取⽂件和⽬录信息的类,如获取⽂件名、⽂件⼤⼩、⽂件修改⽇期等。QFileInfo类中提供了很多的⽅法,常⽤的有:

• isDir() 检查该⽂件是否是⽬录;
• isExecutable() 检查该⽂件是否是可执⾏⽂件;
• fileName() 获得⽂件名;
• completeBaseName() 获取完整的⽂件名;
• suffix() 获取⽂件后缀名;
• completeSuffix() 获取完整的⽂件后缀;
• size() 获取⽂件⼤⼩;
• isFile() 判断是否为⽂件;
• fileTime() 获取⽂件创建时间、修改时间、最近访问时间等;

需要知道的是C++是在 C17的标准库中才引入了相关的操作

QFileInfo 里面有很多函数,文档中可以看到

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

八、Linux之实用指令

1、指定运行级别 1.1 基本介绍 运行级别说明 0 :关机 1 :单用户【找回丢失密码】 2:多用户状态没有网络服务(用的非常少) 3:多用户状态有网络服务(用的最多) 4:系统未使…

《Effective C++》 笔记

让自己习惯C,Accustoming Yourself to C 1. 视C为一个语言联邦,View Cas a federation of languages. 将 C视为一个由相关语言组成的联邦而非单一语言。在其某个次语言(sublanguage)中,各种守则与通例都倾向简单、直观…

机器学习笔记-2

文章目录 一、Linear model二、How to represent this function三、Function with unknown parameter四、ReLU总结、A fancy name 一、Linear model 线性模型过于简单,有很大限制,我们需要更多复杂模式 蓝色是线性模型,线性模型无法去表示…

【.net core使用minio大文件分片上传】.net core使用minio大文件分片上传以及断点续传、秒传思路

版本:.net core 7 需求:net限制了上传的大小,只能上传25M上下的文件,如果上传一个八十多兆的文件,swagger接口报错,如果前端调用上传接口,会报CORS跨域错误,这篇文章介绍怎么使用分片…

【X线源】关于滨松MCS2软件的说明

【X线源】关于滨松MCS2软件的说明 1.软件背景2.MCS2界面3.MCS2操作4.常见问题 1.软件背景 滨松为了方便客户将滨松MFX集成进自己的系统,滨松提供了MFX二次开发相关的信息和Demo代码。参考博客说明: 【X线源】关于滨松MFX二次开发demo示例简介 https://…

一个Idea:爆改 T480

爆改 T480 准备大改 T480,家里有一台闲置很久的 T480,不舍得扔,打算升级一下。看了几位up主的视频后,决定动手改造。 计划如下 网卡:加装4G网卡硬盘:更换为 1T 的 NVMe 2280 固态硬盘内存:升…

Unity实战案例全解析 类宝可梦回合制的初级案例 源码分析(加了注释和流程图)

这是一个老教程了,但是对于没有写过回合制的初级程序同学来讲是比较适合的,也可以直接看源码,半小时内可以解决战斗 当然,我也没写过回合制系统所以就到处找,思路明白了就能自己修改了 视频教程 - 油管链接 Turn-Bas…

计算机组成原理(笔记7高速缓冲存储器Cache,计算机组成原理的重难点全、直接、组相连)

为什么要设立高速缓冲存储器 (Cache)? Cache是介于CPU和主存之间的小容量存储器,存取速度比主存快。它能高速地向CPU提供指令和数据,加快程序的执行速度。它是为了解决CPU和主存之间速度不匹配而采用的一项重要技术。…

代理商培训新策略:利用内部知识库提升培训效果

在当今竞争激烈的市场环境中,代理商作为企业与终端消费者之间的桥梁,其专业能力和服务质量直接影响着企业的市场表现和品牌形象。因此,对代理商进行系统而高效的培训,提升其业务技能和服务水平,成为企业不可忽视的重要…

靶场专用免杀工具

工具 SimpleShellcodeInjector 代码 #include <stdio.h> #include <Windows.h> int main(int argc, char* argv[]) {// HWND hWnd GetConsoleWindow();// ShowWindow( hWnd, SW_HIDE );unsigned int char_in_hex;char* shellcode argv[1];unsigned int iteratio…

SpringCloud集成nacos注册中心

SpringCloud集成nacos注册中心 1、Nacos服务端搭建 下载地址:https://github.com/alibaba/Nacos/releases 1)linux环境启停: ①:把我们的Nacos包解压 tar -zxvf nacos-server-1.1.4.tar.gz ②&#xff1a;cd 到我们的解压目录nacos cd nacos ③&#xff1a;进入到bin目录下…

mysql用户管理(user表列信息介绍,本质,管理操作),数据库的权限管理(权限列表,权限操作)

目录 用户管理 介绍 user表 介绍 列信息 Host User *_priv authentication_string 用户管理的本质 操作 创建用户 删除用户 修改用户信息 修改密码 自己修改 root用户修改指定用户的密码 数据库的权限 权限列表 给用户授权 查看权限 回收权限 刷新权限 …

1、HTML笔记

文章目录 计算机基础知识一、HTML基础Web标准(面试重点&#xff09;为什么需要Web标准Web标准的构成 HTML标签DOCTYPE和 lang 以及charset字符集的使用标题标签段落标签和换行标签文本格式化标签div和span标签图像标签和路径超链接标签注释标签特殊字符表格标签列表标签表单标签…

飞牛NAS未识别到网卡

最新都说国产免费的飞牛NAS非常好用&#xff0c;再也不用搞黑群辉了。 以前也没有搞过NAS&#xff0c;刚好借着这个机会学习一下NAS产品。 在虚拟机上安装&#xff0c;安装还挺顺利&#xff0c;就打算在买来的 也试试&#xff0c;结果系统都安装成功了&#xff0c;但是提示“…

离散数学-逻辑与证明基础1.4(谓词和量词)

谓词 1.4.2 谓词 涉及变量的语句&#xff0c;例如&#xff1a; “ x > 3 x > 3 x>3”&#xff0c;“ x y 3 x y 3 xy3”&#xff0c;“ x y z x y z xyz” 以及 \quad “Computer x x x is under attack by an intruder” \quad “Computer x x x is f…

RISC-V笔记——基础

1. 前言 RISC-V旨在支持广泛的定制和专业化。RISC-V的ISA是由一个基本整型ISA和其它对基本ISA的可选扩展组成。每个整型ISA可以使用一个或多个可选的ISA扩展进行扩展。 基本整型ISA精选了最小的一组指令&#xff0c;这些指令足以为编译器、汇编器、链接器和操作系统提供足够的…

常见八大排序算法

今天我们带来数据结构中常见的8大排序算法。 排序算法平均时间复杂度最好情况最坏情况空间复杂度稳定性冒泡排序O(n方)O(n方)O(n方)O(1)稳定插入排序O(n方)O(n方)O(n方)O(1)稳定选择排序O(n方)O(n方)O(n方)O(1)不稳定希尔排序O(n1.3方到1,5方)O(n)O(n方)O(1)不稳定堆排序O(n lo…

Opencv形态学的膨胀操作、开运算与闭运算、梯度运算、礼帽与黑帽操作

文章目录 一、膨胀操作二、开运算与闭运算三、梯度运算四、礼帽与黑帽操作 一、膨胀操作 膨胀操作也就是根据图片将边缘的一些细节给丰富&#xff0c;处理的程度取决于卷积核的大小还有膨胀次数。也就是腐蚀操作的相反操作&#xff08;腐蚀操作参考我的上一篇文章 点击跳转&am…

音视频编辑码部分常识

音视频编辑码常识 基本概念 实时音视频通讯 音视频处理 网络传输。包括采集、编码、网络传输、解码、播放等环节 视频播放器播放一个互联网上的视频文件&#xff0c;需要经过以下几个步骤&#xff1a;解协议&#xff0c;解封装&#xff0c;解码视音频&#xff0c;视音频同…

C++初阶(二)--C++入门(引用篇)

目录 一、引用的基本概念与特性 1.定义与声明 2.特性 二、引用的进阶用法 1.函数参数传递&#xff1a; 2.引用作为函数返回值&#xff08;重点&#xff09; 引用作为返回值的优点 引用作为返回值的注意事项 代码示例 注意事项的进一步说明 三、传值和传引用效率比较 …