第三十二课、Qt中的文件操作------------------狄泰软件学院
一、Qt中的IO操作
1、Qt中IO操作的处理方式
(1)、Qt通过统一的接口简化了文件与外部设备的操作方式
(2)、Qt中的文件被看做是一种特殊的外部设备
(3)、Qt中的文件操作与外部设备操作相同
2、IO操作中的关键函数接口
注意:IO操作的本质:连续存储空间的数据读写
3、Qt中IO设备类型
(1)、顺序存储设备:只能从头开始顺序读写数据,不能指定数据的读写位置(串口)
(2)、随机存储设备:可以定位到任意位置进行数据读写(seek function函数)(文件)
4、Qt中IO设备 的继承层次图
二、Qt中的文件操作
1、QFile是Qt中用于文件操作的类
2、QFile对象对应到计算机上的一个文件
3、QFineInfo类用于读取文件属性信息
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
#include <QtCore/QCoreApplication> #include <QFile> #include <QString> #include <QDebug> #include <QFileInfo> #include <QDateTime> void write(QString f) { QFile file(f); if(file.open(QIODevice::ReadWrite | QIODevice::Text)) { file.write("ABCDEFG\n");//有就打开,没有就创建,并且写的时候覆盖里面的内容 file.write("ABCDEFG"); file.close(); } } void read(QString f) { QFile file(f); if(file.open(QIODevice::ReadWrite | QIODevice::Text)) { QByteArray ba = file.readLine(); QString s(ba); qDebug() << s; file.close(); } } void info(QString f) { QFile file(f); QFileInfo info(file); qDebug() << info.exists(); qDebug() << info.isFile(); qDebug() << info.isReadable(); qDebug() << info.isWritable(); qDebug() << info.created(); qDebug() << info.lastRead(); qDebug() << info.lastModified();//最后修改时间 qDebug() << info.path(); qDebug() << info.fileName(); qDebug() << info.suffix();//后缀 qDebug() << info.size(); } int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); write("F:/Qt/lesson32/text.txt"); read("F:/Qt/lesson32/text.txt"); info("F:/Qt/lesson32/text.txt"); return a.exec(); }
4、Qt中提供了临时文件操作类QTemPoraryFile
(1)、安全创建全局唯一的临时文件
(2)、当对象销毁时对应的临时文件销毁
(3)、临时文件的打开方式为QIODevice::ReadWrite
(4)、临时文件用于大数据传递或者进程间通信的场合
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
#include <QtCore/QCoreApplication> #include <QTemporaryFile> #include <QFileInfo> #include <QDebug> int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); QTemporaryFile tempFile; if( tempFile.open() )//默认可读可写 { tempFile.write("D.T.Software"); tempFile.close(); } QFileInfo info(tempFile); qDebug() << info.isFile(); qDebug() << info.path(); qDebug() << info.fileName(); return a.exec(); }
三、小结
(1)、Qt通过统一的方式读写文件和统一的设备
(2)、Qt中IO设备的类型分为顺序存储和随机存储两种
(3)、QFile提供了文件操作的相关方法
(4)、QFileInfo提供了读取文件属性的相关方法
(5)、Qt中提供了临时文件操作类QTemPoraryFile