QFile文件概述
在C语言中:
- fopen:打开文件;
- fread:读文件
- fwrite:写文件
- fclose:关闭文件
在C++中:
- fstream:打开文件
- <<:读文件
- >>:写文件
- close:关闭文件
在Linux中:
- open:打开文件
- read:读文件
- write:写文件
- close:关闭文件
一般在开发过程中很少会直接使用,主要时理解文件操作背后的原理。
在Qt中,使用上述的几种方案来读写文件,也是完全可以(Linux局限于Linux系统,windows上的Qt,就需要使用Windows spi)
与此同时,Qt也提供了一套文件操作,这是由于Qt诞生的过于早,C++还没有“标准化”概念,在编写Qt程序的时候,更推荐使用Qt自己提供的这一套文件操作,和QString等Qt内置的类可以很好的配合。
Qt中的文件操作,核心操作也是这几个部分:打开、读、写、关闭。在Qt中使用QFile类来完成上述文件操作。
⽂件操作是应⽤程序必不可少的部分。Qt 作为⼀个通⽤开发库,提供了跨平台的⽂件操作能⼒。 Qt提供了很多关于⽂件的类,通过这些类能够对⽂件系统进⾏操作,如⽂件读写、⽂件信息获取、⽂件复制或重命名等。
输入输出设备类
在 Qt 中,⽂件读写的类为 QFile 。QFile 的⽗类为 QFileDevice ,QFileDevice 提供了⽂件交互操作的底层功能。 QFileDevice 的⽗类是 QIODevice,QIODevice 的⽗类为 QObject 。
QIODevice 是 Qt 中所有输⼊输出设备(input/output device,简称 I/O 设备)的基础类,I/O 设备就是能进⾏数据输⼊和输出的设备,例如⽂件是⼀种 I/O 设备,⽹络通信中的 socket 是 I/O 设备, 串⼝、蓝⽛等通信接⼝也是 I/O 设备,所以它们也是从 QIODevice 继承来的。
- QFile 是⽤于⽂件操作和⽂件数据读写的类,使⽤ QFile 可以读写任意格式的⽂件。
- QSaveFile 是⽤于安全保存⽂件的类。使⽤ QSaveFile 保存⽂件时,它会先把数据写⼊⼀个临时⽂件,成功提交后才将数据写⼊最终的⽂件。如果保存过程中出现错误,临时⽂件⾥的数据不会被写⼊最终⽂件,这样就能确保最终⽂件中不会丢失数据或被写⼊部分数据。 在保存⽐较⼤的⽂件或复杂格式的⽂件时可以使⽤这个类,例如从⽹络