QT中的文件操作

发布于:2025-05-01 ⋅ 阅读:(18) ⋅ 点赞:(0)

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槽函数进行实现,打印文件的相关属性


网站公告

今日签到

点亮在社区的每一天
去签到