当前位置: 首页 > 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文档中的最外层元素&…...

FPGA图像处理入门:OV7670+DVP接口数据采集的那些‘坑’与优化策略

FPGA图像处理实战&#xff1a;OV7670DVP接口数据采集的工程级优化指南 当你在实验室调试OV7670摄像头时&#xff0c;是否遇到过这些场景&#xff1a;VGA显示器上的图像突然撕裂、颜色通道错乱&#xff0c;或是帧率莫名其妙降到个位数&#xff1f;作为一款经典的VGA分辨率CMOS传…...

人工智能入门全景图:Nanbeige 4.1-3B带你梳理AI核心概念与技术栈

人工智能入门全景图&#xff1a;Nanbeige 4.1-3B带你梳理AI核心概念与技术栈 你是不是也对人工智能充满好奇&#xff0c;但一看到那些复杂的术语和庞大的技术栈就感到无从下手&#xff1f;机器学习、深度学习、神经网络、NLP、CV……这些词听起来很酷&#xff0c;但它们到底是…...

OpenRocket实战手册:从零到精通的火箭设计与仿真完全攻略

OpenRocket实战手册&#xff1a;从零到精通的火箭设计与仿真完全攻略 【免费下载链接】openrocket Model-rocketry aerodynamics and trajectory simulation software 项目地址: https://gitcode.com/GitHub_Trending/op/openrocket 你是否曾经梦想过设计自己的火箭&…...

Flink学习笔记:窗口

简介 langchain中提供的chain链组件&#xff0c;能够帮助我门快速的实现各个组件的流水线式的调用&#xff0c;和模型的问答 Chain链的组成 根据查阅的资料&#xff0c;langchain的chain链结构如下&#xff1a; $$Input \rightarrow Prompt \rightarrow Model \rightarrow Outp…...

数字游民工作流:OpenClaw+nanobot全球远程办公方案

数字游民工作流&#xff1a;OpenClawnanobot全球远程办公方案 1. 为什么需要自动化全球办公方案 作为一名长期在东南亚各国旅居的数字游民&#xff0c;我深刻体会到跨时区工作的痛苦。凌晨三点被欧洲同事的Slack消息吵醒&#xff0c;错过亚太区的晨会&#xff0c;或是忘记在不…...

Phi-3-mini-128k-instruct在软件测试中的应用:自动化生成测试用例与脚本

Phi-3-mini-128k-instruct在软件测试中的应用&#xff1a;自动化生成测试用例与脚本 1. 引言 如果你是一名软件测试工程师&#xff0c;或者正在准备软件测试面试&#xff0c;下面这个问题你一定不陌生&#xff1a;“如何保证测试用例的覆盖率&#xff0c;尤其是在需求频繁变更…...

Video2X:用AI突破视频质量瓶颈的全栈解决方案

Video2X&#xff1a;用AI突破视频质量瓶颈的全栈解决方案 【免费下载链接】video2x A lossless video/GIF/image upscaler achieved with waifu2x, Anime4K, SRMD and RealSR. Started in Hack the Valley II, 2018. 项目地址: https://gitcode.com/GitHub_Trending/vi/video…...

nlp_structbert_siamese-uninlu_chinese-base镜像免配置优势:自动检测CUDA/cuDNN版本并提示降级建议

nlp_structbert_siamese-uninlu_chinese-base镜像免配置优势&#xff1a;自动检测CUDA/cuDNN版本并提示降级建议 你是不是也遇到过这种头疼事&#xff1f;好不容易找到一个好用的AI模型&#xff0c;兴致勃勃地准备部署&#xff0c;结果一运行就报错——CUDA版本不匹配、cuDNN找…...

3个超实用步骤:用DS4Windows让PS手柄在Windows游戏中完美适配

3个超实用步骤&#xff1a;用DS4Windows让PS手柄在Windows游戏中完美适配 【免费下载链接】DS4Windows Like those other ds4tools, but sexier 项目地址: https://gitcode.com/gh_mirrors/ds/DS4Windows 还在为PS4/PS5手柄在Windows游戏中无法正常使用而困扰吗&#xf…...

Umi-OCR:彻底解决你的文字识别难题,这3大功能让你效率翻倍!

Umi-OCR&#xff1a;彻底解决你的文字识别难题&#xff0c;这3大功能让你效率翻倍&#xff01; 【免费下载链接】Umi-OCR Umi-OCR: 这是一个免费、开源、可批量处理的离线OCR软件&#xff0c;适用于Windows系统&#xff0c;支持截图OCR、批量OCR、二维码识别等功能。 项目地址…...