Qt中QFile文件读写操作和QFileInfo文件信息读取方法(详细图文教程)

💪 图像算法工程师,专业从事且热爱图像处理,图像处理专栏更新如下👇:

📝《图像去噪》

📝《超分辨率重建》

📝《语义分割》

📝《风格迁移》

📝《目标检测》

📝《图像增强》

📝《模型优化》

📝《模型实战部署》

📝《图像配准融合》

📝《数据集》

📝《高效助手》

📝《C++》

📝《Qt》


目录

  • [一、QFile 文件读写](#一、QFile 文件读写)
    • [1.1 文本模式读写](#1.1 文本模式读写)
  • [二、QFileInfo 获取文件信息](#二、QFileInfo 获取文件信息)
  • 三、代码
  • 四、总结

在 Qt 中,QFile 用于文件的读写操作,而 QFileInfo 用于获取文件的详细信息。

一、QFile 文件读写

QFile 提供了多种操作文件的方法,包括:

复制代码
文本模式 和 二进制模式 读写
逐行读取文本
读取整个文件内容
追加写入

1.1 文本模式读写

在本地磁盘中有一个.txt文件,读取.txt文件中内容并显示文件路径和内容,界面设计见下:

在源码文件中添加代码和最终输出见下:

二、QFileInfo 获取文件信息

QFileInfo 用于获取文件的详细信息,如文件路径、大小、创建时间、修改时间等。

在源码文件中添加代码和终端输出见下:

三、代码

前面第一和第二章节中代码见下:

cpp 复制代码
#include "widget.h"
#include "ui_widget.h"
#include <QFileDialog>
#include <QFile>
#include <QFileInfo>
#include <QDebug>
#include <QDateTime>
// #include <QTextCodec>


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

    // 点击选取文件按钮,弹出文件对话框
    connect(ui->pushButton,&QPushButton::clicked,[=](){
        QString path = QFileDialog::getOpenFileName(this,"E:\\code\\Qt\\Demo_17_Qt_QFile");

        // 将路径放入到lineEdit中
        ui->lineEdit->setText(path);

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

        // 读取内容放入到textEdit中
        // QFile默认支持的格式是utr-8
        QFile file(path);   // 参数就是读取文件的路径
        // 设置打开方式
        file.open(QIODevice::ReadOnly);

        // QByteArray array = file.readAll();  // 将文件中的所有内容读取

        // 或者逐行读取文件内容
        QByteArray array;
        while (!file.atEnd())
        {
            array += file.readLine();    // 按行读
        }

        // 将读取到的数据 放入textEdit中
        ui->textEdit->setText(array);
        // ui->textEdit->setText(codec->toUnicode(array));

        // 对文件对象进行关闭
        file.close();

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

        // QFileInfo 文件信息类
        QFileInfo info(path);
        qDebug() << "大小:" << info.size() << "后缀名:"<< info.suffix() << "文件名称:" << info.fileName()<<"文件路径:" << info.filePath();
        // qDebug() << "创建日期:" << info.created().toString("yyyy/MM/dd hh:mm:ss");          // created()有问题
        qDebug() << "创建日期:" << info.lastModified().toString("yyyy/MM/dd hh:mm:ss");
    });
}

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

四、总结

以上就是Qt中QFile文件读写操作和QFileInfo文件信息读取方法,希望能帮到你!

感谢您阅读到最后!😊总结不易,多多支持呀🌹 点赞👍收藏⭐评论✍️,您的三连是我持续更新的动力💖

关注下面「视觉研坊」,获取干货教程、实战案例、技术解答、行业资讯!

相关推荐
编程阿峰6 小时前
Python 环境配置(二)安装jupyter、matplotlib、numpy库
开发语言·python·jupyter·numpy·matplotlib
磁爆步兵6 小时前
内存分区:程序运行的核心秘密
java·开发语言·jvm
2301_777998346 小时前
Linux线程同步与互斥(三):信号量与环形队列实现生产者消费者模型
linux·c语言·c++
啦啦啦啦啦zzzz6 小时前
设计模式:单例模式和工厂模式
c++·单例模式·设计模式·工厂模式
Henry Zhu1236 小时前
C++ 动态多态详解
c++
此生决int6 小时前
深入理解C++系列(06)——模版初阶与STL
开发语言·c++
c238567 小时前
《枚举算法 “翻译官”:用 enum class 给 “游游的礼盒” 算分》
c语言·c++·算法
swany7 小时前
同步数据中,只需要几秒钟 & milvus向量数据库不可用 dify1.16.1 升级后踩坑记录
开发语言·python·numpy
小杍随笔7 小时前
2025年Rust GUI框架实战万字避坑指南
开发语言·后端·rust
noipp7 小时前
推荐题目:洛谷 P5843 [SCOI2012] Blinker 的噩梦
c语言·数据结构·c++·算法·游戏·洛谷·luogu