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

QT中的文件操作

C语言中通过fopen/fread/fwrite/fclose进行文件操作

C++中通过fstream/>>/<</close进行文件操作

Linux中通过open/read/write/clos进行文件操作

Qt中同样可以使用上述文件操作

但是Qt同样封装了自己的一套文件操作,,在编写Qt程序时,推荐使用Qt自己提供的文件操作,和Qt的容器(如Qstring等)更加适配、

Qt提供QFile类来实现文件操作

继承体系

QFile类是用来实现文件操作的类

QTemporaryFile是一个临时文件类,当QFie销毁时,QTemporaryFile自动删除

QSaveFile是用于在写文件时,自动的把写的内容先写到临时文件中,不会破坏原有的文件,等写入操作完成后,将旧的文件删除,用新的文件替换旧的文件

QFile---文件类

对文件进行操作时,先创建QFile类

需要指定文件路径和父对象

然后通过QFile类重写的open进行文件打开

mode是打开方式,分为读方式打开,写方式打开,追加写方式打开等

打开文件后就可以进行读写操作

如:read()---由QIODevice提供

第一个是传入数组和数组大小,将读到的内容写入数组

第二个是将读到的内容以字节数组方式返回

第三个是一个读取文件所有数据,以字节数组方式返回

write()

第一个是直接指定要写入的字符数组和数组大小

第二个是直接传入要写入的数组

第三个是直接传入要写入字节数组

完成读写操作后就需要进行文件关闭---释放文件描述符,避免文件描述符表满了

close()

例:

通过菜单栏实现文件的打开,保存,通过多行编辑框实现文件的数据的写入和显示

在头文件声明文件打开和保存信号的槽函数,将QPlainTextEdit作为一个成员变量用来存储创建的QPlainTextEdit的指针,便于向多行输入框进行读写

设置布局

连接槽函数

在源文件进行定义实现槽函数

打开文件

保存文件

此时可以打开文件,将文件的数据显示到多行输入框,或者将多行输入框的数据保存到新建文件内

总结

对文件操作的流程是,通过弹出打开/保存文件对话框

QString path=QFileDialog::getOpenFileName(this)

QString path=QFileDialog::getSaveFileName(this)

获取要操作的文件的路径

在通过QFlie类创建对应文件类

QFile file(path)

再通过open()以读/写方式打开,需接收返回值,判断是否打开成功

若是读文件则调用用文件类调用readAll(),通过QString接收读取的数据---为QByteArrary类型,会自动转换为QString类型

若是写文件则调用文件类的write(),将要写入的数据传入wirte函数,需要转换为QByteArrary类型

QFileInfo---文件和目录信息

QFielInfo是Qt提供的一个用于获取文件相关属性的类,如文件名,文件大小,文件修改日期等

常用方法

方法

说明

isDir()

检查该文件是否有目录

isExecutable()

检查该文件是否是可执行文件

fileName()

获得文件名

completeBaseName()

获取完整的文件名

suffix()

获取文件后缀名

completeSuffix()

获取完整的文件后缀

size()

获取文件大小

isFile()

判断是否为文件

fileTime()

获取文件创建时间,修改时间,最近访问时间等

例:

创建一个继承自QWidget的文件,在ui界面创建一个按钮,通过点击按钮弹出打开文件对话框,获取文件路径,通过文件路径创建QFileInfo类

转到clicked槽函数进行实现,打印文件的相关属性

http://www.xdnf.cn/news/2467.html

相关文章:

  • 在CentOS 8上在线安装Docker
  • ubuntu扩展逻辑卷并调整文件系统大小步骤
  • 1到12月和1到31日英文表达
  • Lua 第10部分 模式匹配
  • 在AWS Glue中实现缓慢变化维度(SCD)的三种类型
  • 阿里云直接对系统云盘扩容
  • OceanBase数据库-学习笔记1-概论
  • 为什么从Word复制到PPT的格式总是乱掉?
  • 使用Aspose.Words将Word转换为HTML时,字体样式丢失问题及解决方法
  • OpenCV彩色图像分割
  • 操作系统:计算机世界的基石与演进
  • 展销编辑器操作难度及优势分析​
  • kafka 中消费者 groupId 是什么
  • Word处理控件Spire.Doc系列教程:C# 通过模板创建 Word 文档
  • 【Java】IntelliJ IDEA 社区版安装
  • MAVLink协议:原理、应用与实践
  • 4.26 数据交互升级引入配置文件
  • Python 第 12、13 节课 - 元组和列表
  • C语言 函数递归
  • TP4056 电池管理芯片介绍及电路应用
  • 计算机二级MS Office第八套演示文稿
  • Pygame入门:零基础打造你的第一个游戏窗口
  • [C++] 高精度乘法
  • 八猴渲染器三维场景实时预览软件 Marmoset Toolbag 5.01 安装包免费下载
  • 九、内联函数(Inline Functions)
  • 《Keras 3部署全攻略:从新手到实战高手》
  • 网络流之最大流(Dinic)
  • Springboot基础篇
  • 牛客:链表内指定区间反转
  • 在 Ubuntu24.04 LTS 上 Docker 部署英文版 n8n 和 部署中文版 n8n-i18n-chinese