当前位置: 首页 > news >正文

【Qt】文件系统

文章目录

  • 文件系统
  • 文件操作
  • 案例:显示路径到标题框,显示内容到文本框
    • 对文件进行写操作
    • 获取文件相关信息

文件系统

Qt 通过QIODevice提供了对 I/O 设备的抽象,这些设备具有读写字节块的能力,下面是 I/O 设备的类图:

image-20231005152245943

  • QIODevice:所有 I/O 设备类的父类,提供了字节块读写的通用操作以及基本接口
  • QFileDevice:Qt5新增加的类,提供了有关文件操作的通用实现
  • QFlie:访问本地文件或者嵌入资源;
  • QTemporaryFile:创建和访问本地文件系统的临时文件;
  • QBuffer:读写QbyteArray, 内存文件;
  • QProcess:运行外部程序,处理进程间通讯;
  • QAbstractSocket:所有套接字类的父类;
  • QTcpSocket:TCP协议网络数据传输;
  • QUdpSocket:传输 UDP 报文;
  • QSslSocket:使用 SSL/TLS 传输数据;

文件操作

QFile提供了从文件中读取和写入数据的能力,通常会将文件路径作为参数传给QFile的构造函数,也可以在创建好对象最后,使用setFileName()来修改。可以使用QDataStream或QTextStream类来读写文件,也可以使用QIODevice类提供的read()、readLine()、readAll()以及write()这样的函数

注意:有关文件本身的信息,比如文件名、文件所在目录的名字等,则是通过QFileInfo获取


案例:显示路径到标题框,显示内容到文本框

image-20231005153359649

MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);//点击选取文件按钮 弹出文件对话框connect(ui->pushButton,&QPushButton::clicked,[=](){//弹出文件对话框 第一个参数:父类指针 第二个参数:对话框标题 第三个参数:默认路径QString file_path =QFileDialog::getOpenFileName(this,"打开文件","Z:");//将选取的文件路径放入到lineEdit中 =>放到文本框当中ui->lineEdit->setText(file_path);//将文件的内容读取到textEdit当中QFile file(file_path); //参数:需要文件的路径file.open(QIODevice::ReadOnly);//指定打开方式//方法1:一次读取所有的内容//QByteArray array = file.readAll();//ui->textEdit->setText(array);//将读取到的数据 放入textEdit中//方法2:按行读取QByteArray array;while( !file.atEnd()){array += file.readLine(); //按行读  追加到array}ui->textEdit->setText(array);//将读取到的数据 放入textEdit中//关闭文件对象file.close();});
}

对文件进行写操作

file.open(QIODevice::Append); //用追加方式进行写
file.write("啊啊啊啊啊");
file.close();

获取文件相关信息

//QFileInfo 文件信息类
QFileInfo info(file_path);
//size返回的是字节数
qDebug() << "大小:" << info.size() << " 后缀名:" << info.suffix() << " 文件名称:"<<info.fileName() << " 文件路径:"<< info.filePath();
qDebug() << "创建日期:" << info.created().toString("yyyy/MM/dd hh:mm:ss");
qDebug() << "最后修改日期:"<<info.lastModified().toString("yyyy-MM-dd hh:mm:ss");

相关文章:

【Qt】文件系统

文章目录 文件系统文件操作案例&#xff1a;显示路径到标题框&#xff0c;显示内容到文本框对文件进行写操作获取文件相关信息 文件系统 Qt 通过QIODevice提供了对 I/O 设备的抽象&#xff0c;这些设备具有读写字节块的能力&#xff0c;下面是 I/O 设备的类图&#xff1a; QIO…...

PostgreSQL 基础知识

执行环境&#xff1a; psql 1. 创建一个表格 CREATE TABLE customers ( customer_id serial PRIMARY KEY,firstname VARCHAR(100) NOT NULL,lastname VARCHAR(100) NOT NULL,username VARCHAR(50) UNIQUE NOT NULL,password VARCHAR(50) NOT NULL,email VARCHAR(255) UNIQUE …...

基于 ResNet18 架构使用 deformable convolution的车道线检测

下面是一个基于关键点的车道线检测网络的 PyTorch 代码示例&#xff0c;其中使用了 deformable convolution。该代码示例基于 ResNet18 架构&#xff0c;可以根据实际情况进行修改。 首先&#xff0c;需要导入必要的库和模块&#xff1a; import torch import torch.nn as nn…...

C++in/out输入输出流[IO流]

文章目录 1. C语言的输入与输出2.C的IO流2.1流的概念2.2CIO流2.3刷题常见while(cin >> str)重载强制类型转换运算符模拟while(cin >> str) 2.4C标准IO流2.5C文件IO流1.ifstream 1. C语言的输入与输出 C语言用到最频繁的输入输出方式就是scanf ()与printf()。 scanf…...

MongoDB的安装

MongoDB的安装 1、Windows下MongoDB的安装及配置 1.1 下载Mongodb安装包 下载地址&#xff1a; https://www.mongodb.com/try/download http://www.mongodb.org/dl/win32 MongoDB Windows系统64位下载地址&#xff1a;http://www.mongodb.org/dl/win32/x86_64 MongoDB W…...

SQL查询优化---如何查询截取分析

慢查询日志 1、慢查询日志是什么 MySQL的慢查询日志是MySQL提供的一种日志记录&#xff0c;它用来记录在MySQL中响应时间超过阀值的语句&#xff0c;具体指运行时间超过long_query_time值的SQL&#xff0c;则会被记录到慢查询日志中。 具体指运行时间超过long_query_time值的…...

vue3基础流程

目录 1. 安装和创建项目 2. 项目结构 3. 主要文件解析 3.1 main.js 3.2 App.vue 4. 组件和Props 5. 事件处理 6. 生命周期钩子 7. Vue 3的Composition API 8. 总结和结论 响应式系统&#xff1a; 组件化&#xff1a; 易于学习&#xff1a; 灵活性&#xff1a; 社…...

Vue 数据绑定 和 数据渲染

目录 一、Vue快速入门 1.简介 : 2.MVVM : 3.准备工作 : 二、数据绑定 1.实例 : 2.验证 : 三、数据渲染 1.单向渲染 : 2.双向渲染 : 一、Vue快速入门 1.简介 : (1) Vue[/vju/]&#xff0c;是Vue.js的简称&#xff0c;是一个前端框架&#xff0c;常用于构建前端用户…...

【原创】解决Kotlin无法使用@Slf4j注解的问题

前言 主要还是辟谣之前的网上的用法&#xff0c;当然也会给出最终的使用方法。这可是Kotlin&#xff0c;关Slf4j何事&#xff01;&#xff1f; 辟谣内容&#xff1a;创建注解来解决这个问题 例如&#xff1a; Target(AnnotationTarget.CLASS) Retention(AnnotationRetentio…...

CDN是如何实现全球节点同步的

当谈到内容交付网络&#xff08;Content Delivery Network&#xff0c;CDN&#xff09;加速时&#xff0c;我们必须了解CDN是如何实现全球节点同步的。CDN是一种网络架构&#xff0c;通过将内容分发到全球各地的服务器节点&#xff0c;以降低用户访问网站或应用程序时的延迟和提…...

Centos7 Linux系统下生成https的crt和key证书

linux下生成https的crt和key证书 步骤如下&#xff1a; x509证书一般会用到三类文&#xff0c;key&#xff0c;csr&#xff0c;crt Key 是私用密钥openssl格&#xff0c;通常是rsa算法。 Csr 是证书请求文件&#xff0c;用于申请证书。在制作csr文件的时&#xff0c;必须使…...

性能测试工具——Jmeter的安装【超详细】

目录 1、性能测试工具&#xff1a;JMeter和LoadRunner对比 2、为什么学习JMeter&#xff1f; 3、JMeter环境搭建 3.1、安装JDK 3.2、下载安装JMeter 3.3、配置环境变量 2.4、启动验证JMeter是否安装成功 4、认识JMeter的目录结构 1&#xff09;bin目录&#xff1a;存放…...

系列三十、Spring AOP vs AspectJ AOP

一、关系 &#xff08;1&#xff09;当在Spring中要使用Aspect、Before、After等注解时&#xff0c;需要添加AspectJ的相关依赖&#xff0c;如下 <dependency><groupId>cglib</groupId><artifactId>cglib</artifactId><version>3.1</…...

面向对象设计模式——策略模式

策略设计模式&#xff08;Strategy Pattern&#xff09;是一种行为型设计模式&#xff0c;它允许在运行时选择算法的行为。该模式定义了一系列算法&#xff0c;将每个算法封装到一个独立的类中&#xff0c;使它们可以相互替换。策略模式使算法独立于客户端而变化&#xff0c;客…...

Kubernetes - Ingress HTTP 负载搭建部署解决方案(新版本v1.21+)

在看这一篇之前&#xff0c;如果不了解 Ingress 在 K8s 当中的职责&#xff0c;建议看之前的一篇针对旧版本 Ingress 的部署搭建&#xff0c;在开头会提到它的一些简介Kubernetes - Ingress HTTP 负载搭建部署解决方案_放羊的牧码的博客-CSDN博客 开始表演 1、kubeasz 一键安装…...

刚刚:腾讯云3年轻量2核2G4M服务器优惠价格366元三年

腾讯云3年轻量2核2G4M服务器&#xff0c;2023双十一优惠价格366元三年&#xff0c;自带4M公网带宽&#xff0c;下载速度可达512KB/秒&#xff0c;300GB月流量&#xff0c;50GB SSD盘系统盘&#xff0c;腾讯云百科txybk.com分享腾讯云轻量2核2G4M服务器性能、优惠活动、购买条件…...

`include指令【FPGA】

案例&#xff1a; 在Verilog中&#xff0c;include指令可以将一个文件的内容插入到当前文件中。 这个指令通常用于将一些常用的代码片段或者模块定义放在单独的文件中&#xff0c; 然后在需要使用的地方通过include指令将其插入到当前文件中。 这样可以提高代码的复用性和可维…...

iphone备份后怎么转到新手机,iphone备份在哪里查看

iphone备份会备份哪些东西&#xff1f;iphone可根据需要备份设备数据、应用数据、苹果系统等。根据不同的备份数据&#xff0c;可备份的数据类型不同&#xff0c;有些工具可整机备份&#xff0c;有些工具可单项数据备份。本文会详细讲解苹果手机备份可以备份哪些东西。 一、ip…...

JAVA毕业设计106—基于Java+Springboot的外卖系统(源码+数据库)

基于JavaSpringboot的外卖系统(源码数据库)106 一、系统介绍 本系统分为用户端和管理端角色 前台用户功能&#xff1a; 登录、菜品浏览&#xff0c;口味选择&#xff0c;加入购物车&#xff0c;地址管理&#xff0c;提交订单。 管理后台&#xff1a; 登录&#xff0c;员工管…...

SpringCore完整学习教程4,入门级别

本章从第4章开始 4. Logging Spring Boot使用Commons Logging进行所有内部日志记录&#xff0c;但保留底层日志实现开放。为Java Util Logging、Log4J2和Logback提供了默认配置。在每种情况下&#xff0c;记录器都预先配置为使用控制台输出和可选的文件输出。 默认情况下&…...

CAXA 引出说明

位置同 CAD 里引线。效果示例设置样式默认样式&#xff0c;GB_引出说明&#xff08;1984&#xff09;Tip&#xff1a;如果引线样式需求是和标注样式一致&#xff0c;就使用“标注” 这一个样式就可以了。场景例如&#xff0c;标注比例是 1:4&#xff1b;但有个地方需要用文字引…...

人工智能通识课:深度学习框架 PyTorch

深度学习框架是连接算法理论与工程实践的重要工具。它让开发者不必从零实现张量运算、自动求导、参数更新、GPU 调度和模型保存等底层细节&#xff0c;而可以把主要精力放在数据处理、模型结构设计、训练策略和实验验证上。在众多深度学习框架中&#xff0c;PyTorch 凭借直观的…...

告别低效写作:盘点2026年顶尖配置的的降AI率网站

轻松降低论文AI率在2026年已不再是难题。最新实测数据显示&#xff0c;2026年降AI率网站正以惊人的效率改变写作方式&#xff0c;覆盖AI痕迹消除、文本优化、降重处理等关键场景&#xff0c;真正实现高效去AI化&#xff0c;让论文修改不再费时费力。 一、全流程王者&#xff1a…...

ChatGPT写不出合格投资人邮件?错!真正稀缺的是这5个私募股权语境理解层(附LP偏好词云图谱)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;ChatGPT投资人邮件撰写的核心误区与范式跃迁 许多创业者在使用ChatGPT辅助撰写面向投资人的邮件时&#xff0c;陷入“信息堆砌型”表达陷阱——将产品功能、技术参数、市场数据不加筛选地塞入正文&…...

多版本滤波算法对比试验

一、设计版本V1.0资源二、设计版本V2.0资源和仿真三、设计版本V3.0资源和仿真四、设计优化V4.0设计优化V4.0是在V3.0基础上将inline off去掉后&#xff0c;资源立马下降。总结&#xff1a;V1.0版本&#xff0c;很奇怪&#xff0c;按道理&#xff0c;资源要多些&#xff0c;但是…...

【读书笔记】《更富有、更睿智、更快乐》

《更富有、更睿智、更快乐》精读笔记作者威廉格林历时25年&#xff0c;贴身采访全球40余位顶级投资大师&#xff0c;包括芒格、巴菲特等人&#xff0c;总结出一套投资与人生的双赢哲学。核心命题顶级投资者本质上是一类实践哲学家——他们不谈空理论&#xff0c;只追求世俗智慧…...

Agent协议标准化:互操作性的未来

Agent协议标准化:互操作性的未来 一、引言 钩子:你是否遇到过这些Agent协作的痛点? 你花了3天时间基于OpenAI GPT-4开发了一个客户需求分析Agent,能自动解析用户对话生成需求文档,但当你想把生成的需求文档同步给公司内部基于Llama 3部署的产品排期Agent时,却发现两个A…...

终极解放:BetterGI原神自动化工具完整指南

终极解放&#xff1a;BetterGI原神自动化工具完整指南 【免费下载链接】better-genshin-impact &#x1f4e6;BetterGI 更好的原神 - 自动拾取 | 自动剧情 | 全自动钓鱼(AI) | 全自动七圣召唤 | 自动伐木 | 自动刷本 | 自动采集/挖矿/锄地 | 一条龙 | 全连音游 | 自动烹饪 - U…...

使用Taotoken后模型API调用的延迟与稳定性实际观测体验

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 使用Taotoken后模型API调用的延迟与稳定性实际观测体验 1. 观测背景与测试方法 作为一名日常需要调用多种大模型API的开发者&…...

OpenSSH ssh-agent CVE-2023-38408 漏洞修复实战指南

1. 这个漏洞不是“修个配置就能好”的那种——它藏在ssh-agent的共享库加载机制里OpenSSH-ssh-agent CVE-2023-38408&#xff0c;光看编号你可能觉得是又一个常规权限提升补丁。但实际动手前我翻了三天源码才意识到&#xff1a;这不是改几行配置、重启服务就能闭环的问题。它直…...