在Qt里文件被看成一种特殊的外部设备。与外部设备的操作方式相同。qt通过统一的借口来操作文件及外部设备。
操作方式:
(1).打开设备:open();
(2).读取数据: read()
(3).写入数据: write()
(4).关闭设备: close()
qt中IO设备的类型:
顺序存储设备:只能从头到尾开始读取数据,不能指定读写数据的位置
随机存储设备:可以定位到任意位置进行数据的读写
QtIO设备类继承图;
详细代码实例:
#include <QCoreApplication>
#include <QFile>
#include <QByteArray>
#include <QDebug>
#include <QFileInfo> //文件信息类
#include <QTemporaryFile>
#include <QDateTime>
void write(QString s) //文件写入
{
QFile file(s);
if(file.open(QFile::WriteOnly | QIODevice::Text))
{
file.write("BadogYang student\n");
file.write("D.T Software\n");
file .close();
}
}
void read(QString s) //文件读取
{
QFile file(s); //创建文件
if(file.open(QFile::ReadOnly | QIODevice::Text)) //打开文件
{
QByteArray ba = file.readLine(); //读取文件
QString s(ba);
qDebug() << s;
file.close();
}
}
void fileInfo(QString s) //打印文件信息
{
QFile file(s);
QFileInfo info(file);
qDebug() << info.fileName();
qDebug() << info.path();
qDebug() << info.isReadable();
qDebug() << info.isWritable();
file.close();
}
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
//write("H:/test.txt");
//read("H:/test.txt");
//fileInfo("H:/test.txt");
QTemporaryFile file; //创建临时文件对象
if(file.open())
{
file.write("badogyang\n");
file.close();
}
QFileInfo info(file);
qDebug() << info.fileName();
qDebug() << info.filePath();
qDebug() << info.created();
file.close(); //关闭文件
return a.exec();
}
Qt中的临时文件类QTemporaryFile用于创建全局唯一的临时文件,当对象销毁时文件也会销毁,打开方式为读写(QIOdevice::ReadWrite),常用于大数据传递与进程间的通信。
//文章参考狄泰软件学院Qt视频教程