文本编辑器涉及到文本的保存和文本的读取,所以今天学习 Qt 中的文件操作。
1、Qt 中的 IO 操作
Qt 中 IO操作的处理方式
— Qt 通过统一的接口简化了文本与外部设备的操作方式
— Qt 中的文件被看作一种特殊的外部设备(和Linux类似,一切皆文件)
— Qt 中的文件操作与外部设备的操作相同
IO 操作中的关键函数接口
IO 操作的本质:连续存储的空间中进行数据的读写
Qt 中 IO 设备的类型
— 顺序存取设备(串口编程)
只能从头开始顺序的读写数据,不能指定数据的读写位置
— 随机存取设备(文件存取)
可以定位到任意的位置进行数据的读写
Qt 中 IO 设备的继承层次图
2、Qt 中的文件操作
QFile
是 Qt 中用于文件操作的类
QFile
对象对应到计算机上的一个文件
QFileInfo
类用于读取文件属性信息
程序一:
#include
#include
#include
#include
#include void file_info(QString s)
{QFile file(s);QFileInfo info(file);qDebug() <QFile file(s);if(file.open(QIODevice::WriteOnly | QIODevice::Text)){file.write("D.T.Software\n");file.write("xiebs\n");file.close();}
}void read(QString s)
{QFile file(s);if(file.open(QIODevice::ReadOnly | QIODevice::Text)){QByteArray ba = file.readAll();QString str(ba);qDebug() << str;file.close();}
}int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);// write("C:/Users/xiebs/Desktop/new.txt");
// read("C:/Users/xiebs/Desktop/new.txt");file_info("C:/Users/xiebs/Desktop/new.txt");return a.exec();
}
QTemporaryFile
QIODevice::ReadWrite
程序二:
#include
#include
#include
#include int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);QTemporaryFile tempfile;if(tempfile.open()){tempfile.write("xiebs");tempfile.close();}QFileInfo info(tempfile);qDebug() << info.isFile();qDebug() << info.fileName();qDebug() << info.path();return a.exec();
}
小结:
1、Qt 通过统一的方式读写文件和外部设备
2、Qt 中 IO 设备的类型分为顺序存取和随机存取两种
3、QFile 提供了文件操作相关的方法
4、QFileInfo 提供了读取文件属性相关的方法
5、Qt 提供了临时文件操作类 QTemporaryFile
下一篇:PMP第十一章重要知识点