【Qt】Qt框架文件处理精要:API解析与应用实例:QFile

前言:

在现代软件开发中,文件操作是应用程序与外部世界交互的基本方式之一。无论是读取用户数据、存储配置信息,还是管理临时文件,文件系统都是不可或缺的一部分。Qt,作为一个功能强大的跨平台开发框架,提供了一套全面的文件操作API,使得开发者能够在不同的操作系统上实现一致的文件处理逻辑。本篇文章将深入探讨Qt中的文件操作,包括文件的打开、读写、关闭,以及文件和目录信息的获取等核心功能。通过详细的代码示例和类介绍,读者将能够理解并掌握Qt文件操作的基本概念和实用技巧。

1. Qt 文件概述

文件操作是应用程序必不可少的部分。Qt 作为一个用开发库,提供了跨平台的文件操作能力。 Qt提供了很多关于文件的类,通过这些类能够对文件系统进行操作,如文件读写、文件信息获取、文件复制或重命名等。

2. 输入输出设备类

  • C语言中,fopen 打开文件,freadfwrite 读写文件,fclose 关闭文件
  • C++ 中,fstream 打开文件,<<>> 读写文件,close 关闭文件
  • Linux 中,open 打开文件,readwrite 读写文件,close 关闭文件 (一般开发中很少会直接使用,主要是要理解其背后的原理)

在 Qt 中使用上述的几种方案来读写文件,也是完全可以的。(Linux 这一套,局限于 Linux 系统,Windows 上的 Qt,就需要使用 Windows api) 但是即使如此,Qt还是又封装了一套。 Qt 诞生的太早了,C++还没有“标准化”概念。
咱们在编写 Qt 程序的时候,更推荐使用 Qt 自己提供的这一套文件操作,和QString等 Qt 内置的类可以很好的配合。

Qt中的文件操作,核心操作也是这么几个部分:打开,读,写,关闭。
QFile 类完成,完成上述文件操作。
在这里插入图片描述
QTemporaryFile: 这个对象销毁,对应的文件就自动删除了
QSaveFile: 要写入大量数据,写入文件的时候,往往会把旧的文件先清空再写,万一新的数据写写一般,结果出错了。新的数据用不了旧的数据也无了。

如果你想写一个文件,会自动的把内容写到零时文件里(不会破坏原有的文件)等到所有内容都写完了之后,再把旧文件自动删除,并且用新的文件替换旧的文件。(这种策略是一种个广泛常见)

QSerialPort: 串口一种古老的通信方式,一般是再嵌入式系统上,开发板,通过串口来和开发板之间进行交互。
QProcess: 相当于是对 fork / exec 操作进行封装。
QBuffer:缓冲区

3. 文件读写类

QFile

QFile(const QString &name)

可以是绝对路径,也可以是相对路径

如果在文档中 QFile 中找不到这些,可以在其父类找。

3.1. 打开open

在这里插入图片描述
构造函数中,指定了路径之后,此时直接通过这个版本的 open 打开
在这里插入图片描述
OpenMode: 读方式、写方式、追加写方式…
在这里插入图片描述

3.2. 读read / readline/ readAll

在这里插入图片描述
QByteArry 很方便转成 QString

3.3. 写write

在这里插入图片描述

3.4. 关闭close

在这里插入图片描述
关闭的本质是要释放文件描述符表中的表项;文件描述符表存在上限,如果一直打开,不关闭的话,就可能会使文件描述符表被占满,后续再尝试打开,就打开不了了。

4. 读写文件示例

#include "mainwindow.h"
#include "ui_mainwindow.h"

#include <QFileDialog>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
   
    ui-></
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Q_hd

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值