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

第一天复习Qt文件读取

Qt文件操作:

1、QFile QTextStream操作文件案例:
1、打开文件
QFile file(absolute filepath | relative path);
file.readLine()返回内容长度,如果为-1就是读取失败
file. Close()读取后关闭
file.errorString()返回文件打开发生的错误
2、文件写入//文件写入double dPi = 3.1415926;int age = 13;QFile dataFile;dataFile.setFileName(R"(P:\Qt_study_rebegin\Qt_basic\01_basic_lesson\project01\src\build-qiniu_016-Desktop_Qt_5_15_2_MSVC2019_64bit-Debug\debug\data.txt)");// 检查文件是否存在if (!dataFile.exists()) {// 文件不存在,创建文件if (dataFile.open(QIODevice::WriteOnly)) {qDebug() << "File created successfully.";// 创建一个QTextStream对象out,并将其关联到dataFile文件上QTextStream out(&dataFile);// 设置实数(浮点数)的输出精度为3位小数out.setRealNumberPrecision(3);// 设置字段宽度为10个字符,写入的数据将按照10个字符的宽度进行排列out.setFieldWidth(10);// 设置字段对齐方式为右对齐,写入的数据将在字段宽度内右对齐显示,左侧留有空格填充out.setFieldAlignment(QTextStream::AlignRight);out<<QString("PI: ")<<scientific<<left<<dPi<<hex<<Qt::showbase<<uppercasebase<<age;dataFile.close();} else {qDebug() << "Failed to create file.";}} else {qDebug() << "File already exists.";}
3、文件存储并输出QFile binfile("info.txt");if(binfile.open(QIODevice::WriteOnly|QIODevice::Truncate)){// 创建一个数据流对象,并将其关联到文件上QDataStream out(&binfile);// 写入数据到数据流中out << QString("易烊千玺")  // 字符串数据<< QDate::fromString("2000-11-28","yyyy-MM-dd")  // 日期数据<< (qint32)19;  // 整数数据// 关闭文件binfile.close();}else{// 输出错误信息qDebug() << binfile.errorString();}// 设置文件名为 info.txtbinfile.setFileName("info.txt");// 以只读方式打开文件if(binfile.open(QIODevice::ReadOnly)){// 创建一个数据流对象,并将其关联到文件上QDataStream in(&binfile);// 定义变量用于存储读取的数据QString name;QDate birthday;qint32 age;// 从数据流中读取数据in >> name >> birthday >> age;// 关闭文件binfile.close();// 输出读取的数据qDebug() << "Name:" << name;qDebug() << "Birthday:" << birthday.toString("yyyy-MM-dd");qDebug() << "Age:" << age;}else{// 输出错误信息qDebug() << binfile.errorString();}

s输出结果

2、QFileInfo类获取文件信息
// 计算目录大小的递归函数
qint64 Widget::calculateDirSize(const QString &dirPath) {qint64 totalSize = 0;// 创建 QDir 对象并设置过滤器QDir dir(dirPath);dir.setFilter(QDir::Files | QDir::Dirs | QDir::NoDotAndDotDot);// 获取目录下的文件和子目录信息列表QFileInfoList fileInfoList = dir.entryInfoList();// 遍历文件和子目录信息列表for (const QFileInfo &info : fileInfoList) {// 如果是文件,则累加文件大小if (info.isFile()) {totalSize += info.size();}// 如果是子目录,则递归调用计算目录大小函数,并累加子目录大小else if (info.isDir()) {totalSize += calculateDirSize(info.filePath());}}return totalSize;
}// 获取文件信息并显示在界面上的函数
void Widget::getFileInfo(QString &filename) {// 创建 QFileInfo 对象获取文件/目录信息QFileInfo info(filename);// 根据文件类型获取大小,如果是目录则调用计算目录大小函数qint64 size = info.isDir() ? calculateDirSize(filename) : info.size();QDateTime createtime = info.created();QDateTime lasttime = info.lastModified();QDateTime lastrtime = info.lastRead(); // 最后一次访问// 获取文件属性信息bool isdir = info.isDir();bool isfile = info.isFile();bool islink = info.isSymLink();bool ishidden = info.isHidden();bool isread = info.isReadable();bool iswrite = info.isWritable();bool isexcute = info.isExecutable();// 将文件信息显示在界面上ui->size->setText(QString::number(size));ui->create->setText(createtime.toString());ui->dir->setChecked(isdir); // 设置目录选中状态
}// 浏览按钮点击事件的处理函数
void Widget::on_browsebtn_clicked() {// 弹出文件选择对话框选择目录QString path = QFileDialog::getExistingDirectory(this, "选择目录", ",");ui->name->setText(path); // 在界面上显示选择的目录路径getFileInfo(path); // 获取目录信息并显示在界面上
}

效果展示:
在这里插入图片描述

相关文章:

第一天复习Qt文件读取

Qt文件操作&#xff1a; 1、QFile QTextStream操作文件案例&#xff1a; 1、打开文件 QFile file(absolute filepath | relative path); file.readLine()返回内容长度&#xff0c;如果为-1就是读取失败 file. Close()读取后关闭 file.errorString()返回文件打开发生的错误2、…...

使用非官网购买Chatgpt的api调用

测试代码 from openai import OpenAI client OpenAI(api_key用户密钥) import json import os import timeclass ChatGPT:def __init__(self, user):self.user userself.messages [{"role": "system", "content": "Agent"}]def as…...

通过 Java 操作 redis -- hash 哈希表基本命令

目录 使用命令 hset&#xff0c;hget 使用命令 hexists 使用命令 hdel 使用命令 hkeys&#xff0c;hvals 使用命令 hmget&#xff0c;hmset 关于 redis hash 哈希表类型的相关命令推荐看Redis - hash 哈希表 要想通过 Java 操作 redis&#xff0c;首先要连接上 redis 服务…...

Unity 性能优化之遮挡剔除(Occlusion Culling)(六)

提示&#xff1a;仅供参考&#xff0c;有误之处&#xff0c;麻烦大佬指出&#xff0c;不胜感激&#xff01; 文章目录 前言一、遮挡剔除是什么&#xff1f;二、静态遮挡剔除的使用步骤1.标记为遮挡剔除对象2.创建Occlusion Area组件3.烘焙4.Occlusion窗口Bake的参数Smallest Oc…...

android——关于app性能优化篇

前言 应用性能优化是指通过各种技术手段和优化策略&#xff0c;提高应用程序的性能&#xff0c;使其能够更高效地运行和响应用户操作。 下面介绍一些常见的应用性能优化方法 一、布局优化 1、减少嵌套 嵌套层数尽量少&#xff0c;使用ConstaintLayout能使层级大大降低尽量使…...

单链表经典算法LeetCode--203.移除链表元素(两种方法解)

1.链接&#xff1a;. - 力扣&#xff08;LeetCode&#xff09;【点击即可跳转】 分析此题提供两种思路&#xff1a; 1.遍历原链表&#xff0c;将值为val的节点释放掉&#xff08;双指针法&#xff09; 定义一个pcur指针指向头节点&#xff0c;定义一个prev指针指向NULL 需要注…...

MySQL—子查询

目录 ▐ 子查询概述 ▐ 准备工作 ▐ 标量子查询 ▐ 列子查询 ▐ 表子查询 ▐ 多信息嵌套 ▐ 子查询概述 • 子查询也称嵌套查询&#xff0c;即在一个查询语句中又出现了查询语句 • 子查询可以出现在from 后面 或where后面 • 出现在 from 后称表子查询&#xff0c;结…...

ffmpeg 读取流报错: Non-monotonous DTS in output stream

在处理媒体文件时&#xff0c;我们可能会遇到各种错误&#xff0c;其中之一就是“Non-monotonous DTS in output stream 0:1; previous: 36963866, current: 36611997; changing to 36963867. This may result in incorrect timestamps in the output file.”这个错误通常发生在…...

yo!这里是socket网络编程相关介绍

目录 前言 基本概念 源ip&&目的ip 源端口号&&目的端口号 udp&&tcp初识 socket编程 网络字节序 socket常见接口 socket bind listen accept connect 地址转换函数 字符串转in_addr in_addr转字符串 套接字读写函数 recvfrom&&a…...

polars学习-03 数据类型转换

背景 polars学习系列文章&#xff0c;第3篇 数据类型转换。 该系列文章会分享到github&#xff0c;大家可以去下载jupyter文件 仓库地址&#xff1a;https://github.com/DataShare-duo/polars_learn 小编运行环境 import sysprint(python 版本&#xff1a;,sys.version.spli…...

IDC 权威认可!Aloudata 入选金融领域中数据管理分析服务最佳实践案例

近日&#xff0c;国际知名数据咨询机构 IDC 重磅发布了《IDC PeerScape&#xff1a;金融领域中数据管理分析服务最佳实践案例》报告&#xff0c;Aloudata 与招商银行联合打造的 DDH 数据研发运维一体化平台成功入选&#xff0c;Aloudata 的技术、产品实力&#xff0c;以及在金融…...

RSA与AES算法比较及应用场景推荐

摘要&#xff1a;在现代加密通信中&#xff0c;RSA算法和AES算法被广泛应用。RSA算法是一种非对称加密算法&#xff0c;而AES算法是一种对称加密算法。本文将对比分析这两种算法的原理、性能及适用场景&#xff0c;并给出相应的推荐建议。 一、RSA算法简介 RSA算法&#xff0…...

揭秘 HTTP 代理:增强在线活动的安全性和匿名性

HTTP 代理在保护您的在线隐私、增强安全性以及允许访问受限内容方面发挥着关键作用。了解 HTTP 代理的工作原理以及如何有效地利用它们可以让您掌控自己的在线状态和浏览体验。让我们深入研究 HTTP 代理的世界&#xff0c;探索它们的优势、应用程序以及最大化其效用的最佳实践。…...

【经验】mysql冷热数据分离

使用mysql存储时&#xff0c;为了提升数据的查询效率&#xff0c;降低磁盘存储压力等&#xff0c;我们常常使用"冷热数据分离"分离的方案。即&#xff0c;将数据从所谓的“热表”&#xff08;即经常有写入和查询操作的活跃表&#xff09;迁移到“冷表”&#xff08;用…...

【机器学习-06】Scikit-Learn机器学习工具包进阶指南:机器学习分类模型实战与数据可视化分析

&#x1f3a9; 欢迎来到技术探索的奇幻世界&#x1f468;‍&#x1f4bb; &#x1f4dc; 个人主页&#xff1a;一伦明悦-CSDN博客 ✍&#x1f3fb; 作者简介&#xff1a; C软件开发、Python机器学习爱好者 &#x1f5e3;️ 互动与支持&#xff1a;&#x1f4ac;评论 &…...

蓝桥杯国赛每日一题:日志统计(双指针)

题目描述&#xff1a; 小明维护着一个程序员论坛。现在他收集了一份”点赞”日志&#xff0c;日志共有 N行。 其中每一行的格式是&#xff1a; ts id 表示在 ts时刻编号 id 的帖子收到一个”赞”。 现在小明想统计有哪些帖子曾经是”热帖”。 如果一个帖子曾在任意一个长…...

佛山MES公司(盈致mes系统服务商)助力企业实现智能制造

佛山是中国制造业著名的城市之一&#xff0c;拥有众多制造企业。随着科技的不断发展和智能制造的兴起&#xff0c;越来越多的企业开始意识到数字化生产管理的重要性&#xff0c;MES制造执行系统作为智能制造的关键技术之一&#xff0c;受到了越来越多企业的关注和应用。 在佛山…...

算法设计课第五周(贪心法实现活动选择问题)

目录 一、【实验目的】 二、【实验内容】 三、实验源代码 一、【实验目的】 &#xff08;1&#xff09;熟悉贪心法的设计思想 &#xff08;2&#xff09;理解贪心法的最优解与正确性证明之间的关系 &#xff08;3&#xff09;比较活动选择的各种“贪心”策略&#xff0c;…...

Ubuntu20.04右键打不开终端

今天用virtualbox安装了ubuntu20.04 问题&#xff1a;右键打开终端&#xff0c;怎么也打开不了&#xff01; 点了也没反应&#xff0c;或者鼠标转小圈圈&#xff0c;然后也没有反应… 解决方法&#xff1a; 1、Ctrl Alt F6 先切换到终端访问界面 mac电脑 Ctrl Alt F6 …...

XML元素

XML 元素是XML文档中的基本组成单位&#xff0c;它由开始标签、结束标签和内容组成&#xff0c;格式如下&#xff1a; <element>content</element>常见的XML元素包括&#xff1a; 根元素&#xff08;Root Element&#xff09;&#xff1a;XML文档中的最外层元素&…...

MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例

一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...

23-Oracle 23 ai 区块链表(Blockchain Table)

小伙伴有没有在金融强合规的领域中遇见&#xff0c;必须要保持数据不可变&#xff0c;管理员都无法修改和留痕的要求。比如医疗的电子病历中&#xff0c;影像检查检验结果不可篡改行的&#xff0c;药品追溯过程中数据只可插入无法删除的特性需求&#xff1b;登录日志、修改日志…...

安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件

在选煤厂、化工厂、钢铁厂等过程生产型企业&#xff0c;其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进&#xff0c;需提前预防假检、错检、漏检&#xff0c;推动智慧生产运维系统数据的流动和现场赋能应用。同时&#xff0c;…...

Java 加密常用的各种算法及其选择

在数字化时代&#xff0c;数据安全至关重要&#xff0c;Java 作为广泛应用的编程语言&#xff0c;提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景&#xff0c;有助于开发者在不同的业务需求中做出正确的选择。​ 一、对称加密算法…...

DBAPI如何优雅的获取单条数据

API如何优雅的获取单条数据 案例一 对于查询类API&#xff0c;查询的是单条数据&#xff0c;比如根据主键ID查询用户信息&#xff0c;sql如下&#xff1a; select id, name, age from user where id #{id}API默认返回的数据格式是多条的&#xff0c;如下&#xff1a; {&qu…...

【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)

升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点&#xff0c;但无自动故障转移能力&#xff0c;Master宕机后需人工切换&#xff0c;期间消息可能无法读取。Slave仅存储数据&#xff0c;无法主动升级为Master响应请求&#xff…...

项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)

Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败&#xff0c;具体原因是客户端发送了密码认证请求&#xff0c;但Redis服务器未设置密码 1.为Redis设置密码&#xff08;匹配客户端配置&#xff09; 步骤&#xff1a; 1&#xff09;.修…...

Typeerror: cannot read properties of undefined (reading ‘XXX‘)

最近需要在离线机器上运行软件&#xff0c;所以得把软件用docker打包起来&#xff0c;大部分功能都没问题&#xff0c;出了一个奇怪的事情。同样的代码&#xff0c;在本机上用vscode可以运行起来&#xff0c;但是打包之后在docker里出现了问题。使用的是dialog组件&#xff0c;…...

算法岗面试经验分享-大模型篇

文章目录 A 基础语言模型A.1 TransformerA.2 Bert B 大语言模型结构B.1 GPTB.2 LLamaB.3 ChatGLMB.4 Qwen C 大语言模型微调C.1 Fine-tuningC.2 Adapter-tuningC.3 Prefix-tuningC.4 P-tuningC.5 LoRA A 基础语言模型 A.1 Transformer &#xff08;1&#xff09;资源 论文&a…...

视觉slam十四讲实践部分记录——ch2、ch3

ch2 一、使用g++编译.cpp为可执行文件并运行(P30) g++ helloSLAM.cpp ./a.out运行 二、使用cmake编译 mkdir build cd build cmake .. makeCMakeCache.txt 文件仍然指向旧的目录。这表明在源代码目录中可能还存在旧的 CMakeCache.txt 文件,或者在构建过程中仍然引用了旧的路…...