32 QFile文件读写

news2024/10/7 8:28:53

案例:使用LineEdit和TextEdit实现读取文件并显示文件内容

展示:

 代码:

#include "widget.h"
#include "ui_widget.h"
#include "QFileDialog"
#include "QMessageBox"
#include "QFile"
#include "QTextCodec"

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);

    //点击选择文件按钮,弹出文件对话框,读取文件,文件路径方如lineEdit中,内容放在TextEdit中
    connect(ui->btn_select,&QPushButton::clicked,[=](){
        QString filePath = QFileDialog::getOpenFileName(this,"打开文件","D:\\QT\\QtProjects\\15_QFile","(*.txt)");
        if(filePath.isEmpty()){
            QMessageBox::warning(this,"警告","路径不能为空");
        }else{
           ui->lineEdit->setText(filePath);

           //指定编码格式
//           QTextCodec *codec = QTextCodec::codecForName("gbk");

           //读取文件信息
           QFile file(filePath);
           //指定打开方式
           file.open(QIODevice::ReadOnly);

           QByteArray arr;
           //1:一次全部读取
//           arr = file.readAll();//读取全部信息
           //2:按行读取
           while(!file.atEnd()){
               arr += file.readLine();
           }

           //默认支持编码格式 utf-8
           ui->textEdit->setText(arr);
//           ui->textEdit->setText(codec->toUnicode(arr));

           //关闭文件
           file.close();

           //写文件 WriteOnly会覆盖原来的,Append表示追加
           file.open(QIODevice::Append);
           file.write("aaaaaaa");
           file.close();
        }

    });
}

Widget::~Widget()
{
    delete ui;
}

QFileInfo文件信息读取

//文件信息类
           QFileInfo info(filePath);
           qDebug()<<"后缀名:"<<info.suffix().toUtf8().data()<<"大小:"<<info.size()<<"文件名:"
                  <<info.fileName()<<"文件路径"<<info.filePath();
           //QT6版本created改为birthTime
           qDebug()<<"创建日期:"<<info.created().toString("yyyy-MM-dd hh:mm:ss")
                  <<"最后的修改日期:"<<info.lastModified().toString("yyyy/MM/dd hh:mm:ss");

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

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

相关文章

2、nacos 2.1.0注册中心原理及源码分析

一、为什么有这课程 Spring Cloud Alibaba 新版本中Seata 1.5.2和Nacos 2.1.0 在性能和使用方面都有很大提升&#xff0c;这节课将从使用和源码的角度详细讲解这两个框架。 二、设计注册中心 1、分布式框架的注意点&#xff1a;三高架构 高可用 高可用性&#xff08;High Av…

智慧园区智能照明控制系统解决方案

1、概述 园区照明比较复杂&#xff0c;办公建筑、生产车间和园区道路、景观照明等类型比较多&#xff0c;而且对照明控制方式要求不一样。所以合理使用照明控制系统&#xff0c;针对不同建筑不同场景使用不同的控制策略&#xff0c;大程度使用自然光照明达到节省照明用电&#…

科技资讯|苹果开放Vision Pro头显开发套件申请,此前曝光三款电池

苹果今天宣布面向开发人员&#xff0c;正式接受 Vision Pro 头显开发套件申请&#xff0c;从而帮助其开发和测试应用程序。 苹果官方页面介绍&#xff0c;开发人员在获得 Vision Pro 头显开发套件之外&#xff0c;还可以获得设备设置和入门方面的帮助&#xff0c;与 Apple 专…

谷粒商城篇章5 ---- P173-P192 ---- 检索服务【分布式高级篇二】

目录 1 检索服务 1.1 搭建页面环境 1.1.1 引入依赖 1.1.2 将检索页面放到gulimall-search的src/main/resources/templates/目录下 1.1.3 调整搜索页面 1.1.4 将静态资源放到linux的nginx相关映射目录下/root/docker/nginx/html/static/ search/ 1.1.5 SwitchHosts配置域…

F5产品队列再添“猛将”,稳健守护云原生基础设施

提到F5产品队列&#xff0c;无论是负载均衡&#xff0c;还是独立部署且一次性购买的硬件产品&#xff0c;或者是F5 分布式云服务组合产品&#xff0c;都体现出F5的能力与能量。前不久&#xff0c;F5宣布推出云工作负载防护解决方案——F5 分布式云应用基础设施防护&#xff08;…

Python基础语法第六章之字典

一、字典 1.1字典是什么 字典是一种存储 键值对 的结构. 啥是键值对? 这是计算机/生活中一个非常广泛使用的概念. 把 键(key) 和 值(value) 进行一个一对一的映射, 然后就可以根据键, 快速找到值. 1.2创建字典 创建一个空的字典. 使用 { } 表示字典. a { } b dict() pr…

Win10从安全模式命令行退出安全模式正常启动

前两天听信他人的一则妖言&#xff0c;将windows设置为安全模式卸载软件&#xff0c;结果初始帐户密码忘记&#xff0c;登陆不了了&#xff0c;琢磨半天才正常启动用pin登录了系统。 微软可以使用本地帐户或在线帐户管理计算机&#xff0c;在线帐户的好处就是可以云同步密钥 设…

uniapp 微信小程序 预览pdf方法

效果图&#xff1a; 1、在小程序中 // #ifdef MP */ 是区分运行的环境&#xff0c;在小程序中可使用如下方法uni.downloadFile({url: item.link,//文件地址success: function (res) {var filePath res.tempFilePath;uni.openDocument({filePath: filePath,showMenu: false…

Hadoop学习日记-MapReduce思想及执行流程

MapReduce思想 Map负责“拆分”&#xff1a;即将复杂问题拆分成可以并行计算的小问题&#xff0c;彼此之间几乎没有依赖联系。 Reduce负责对Map阶段的结果进行合并汇总 Map和Reduce的抽象接口如下&#xff1a; map:(k1; v1) — (k2; v2) reduce:(k2; [v2]) — (k3; v3) 一…

行为型模式 - 解释器模式

概述 如上图&#xff0c;设计一个软件用来进行加减计算。我们第一想法就是使用工具类&#xff0c;提供对应的加法和减法的工具方法。 //用于两个整数相加 public static int add(int a,int b){return a b; }//用于两个整数相加 public static int add(int a,int b,int c){r…

玩转代码|JS实现中文字符串对utf-8的Base64编码的方法

目录 UTF-8 字符串编解码 解决方法 解析 utf8_to_b64 b64_to_utf8 弃用 unescape 和 escape 方法 原由 解决方法 Node.js 下的 Base64 编解码 Base64 编解码 Base64是一种使用64基的位置计数法。它使用2的最大次方来代表仅可打印的ASCII 字符。这使它可用来作为电子邮…

YOLOv2论文对比总结

1、高分辨率图片效果提升 2、Anchor 3、Loss函数 4、小目标友好

【文献分享】比目前最先进的模型轻30%!高效多机器人SLAM蒸馏描述符!

论文题目&#xff1a;Descriptor Distillation for Efficient Multi-Robot SLAM 中文题目&#xff1a;高效多机器人SLAM蒸馏描述符 作者&#xff1a;Xiyue Guo, Junjie Hu, Hujun Bao and Guofeng Zhang 作者机构&#xff1a;浙江大学CAD&CG国家重点实验室 香港中文大学…

Windows安装Redis(配置开机自启+配置密码)

Windows安装Redis 背景安装配置开机自启补充: 在Windows中配置jar自启动 设置密码暂时永久(推荐) 背景 Redis以其优异的性能备受青睐. 成为开发人员离不开的软件一直, 相信愿意点开观看此文的人DDDD 最近因为需要在Windows服务器上面搭建各种项目运行环境, 其中就包括Redis 因…

vue 实现课程表甘特图

1 封装 components <template><view style"padding-bottom: 100rpx;"><view class"header flex_sb"><div class"header_list flex" v-for"(item,index) in timeList" :key"item.value"><div&g…

CORS跨域资源共享漏洞

前置知识 跨域 域&#xff08;Domain&#xff09;是由三部分组成的标识&#xff1a;协议、域名和端口。 例如这两个ip就属于不同的域&#xff1a; http://example.com https://example.com 因为它们的协议不同&#xff08;一个是HTTP&#xff0c;另一个是HTTPS&#xff0…

2023百强县名单出炉!千亿县达54个

作为国民经济发展中的基本单元&#xff0c;县域经济发挥着重要作用。 赛迪顾问25日发布的《2023中国县域经济百强研究》&#xff08;下称“报告”&#xff09;显示&#xff0c;千亿县达54个&#xff0c;百强县前10名中江苏省独占6席。 在百强县前10名中&#xff0c;江苏省占席最…

Esp32_Arduino接入腾讯云笔记

ESP32是一款由乐鑫科技&#xff08;Espressif Systems&#xff09;推出的双核、低功耗、集成Wi-Fi和蓝牙的单芯片微控制器。它采用了Tensilica Xtensa LX6高性能处理器&#xff0c;具有大量的GPIO引脚、模数转换器、SPI、I2S、UART、PWM、I2C和SD卡接口等功能&#xff0c;可以满…

android 清除缓存方法

获得应用的存储信息 private void getAppStorageInfo(String packageName){StorageStatsManager storageStatsManager (StorageStatsManager) context.getSystemService(Context.STORAGE_STATS_SERVICE);StorageManager storageManager (StorageManager) context.getSystemS…

第二十一章 数据处理篇:imgaug

参考教程&#xff1a; https://imgaug.readthedocs.io/en/latest/source/jupyter_notebooks.html 文章目录 概述针对图片的增强基础使用样例base class: augment增强的组合sequentialsomeof和oneofsometimes 增强的种类 针对关键点的增强针对包围框的增强 概述 imgaug是一个使…