第32课 - Qt 中的文件操作(QFile、QFileInfo和QTemporaryFile)

1、Qt中的IO操作 

Qt中IO操作的处理方式 

         -Qt通过统一的接口简化了文件与外部设备的操作方式 

         -Qt中的文件被看作一种特殊的外部设备 

         -Qt中的文件操作与外部设备的操作相同 

IO操作中的关键函数接口 

         -打开设备: bool open(OpenMode mode) 

         -读取数据 QByteArray read(qint64 maxSize) 

         -写入数据 qint64 write(const QByteArray& byteArray) 

         -关闭设备: void close() 

         IO操作的本质:连续存储空间的数据读写 (内存,硬盘、串口、USB口等)

 

Qt中IO设备的类型

         -顺序存取设备 

                  只能从头开始顺序的读写数据,不能指定数据的读写位置

         -随机存取设备 

                  可以定位到任意的位置进行数据的读写(seek function) 

Qt中IO设备的继承层次图 

2、Qt中的文件操作 

QFile是Qt中用于文件操作的类 

QFile对象对应到计算机上的一个文件 

QFilelnfo类用于读取文件属性信息 

3、编程实验 

文件操作初体验    32-1.pro 

#include <QtCore/QCoreApplication>
#include <QFile>
#include <QByteArray>
#include <QFileInfo>
#include <QDateTime>
#include <QDebug>


void write(QString f)
{
    QFile file(f);

    if(file.open(QIODevice::WriteOnly | QIODevice::Text))
    {
        file.write("QQ:1483306601\n");
        file.write("From: Nyist\n");

        file.close();
    }

}

void read(QString f)
{
    QFile file(f);

    if(file.open(QIODevice::ReadOnly | QIODevice::Text))
    {
        QByteArray ba = file.readAll();

        QString s(ba);

        qDebug() << s;
    }
}

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();//使用QDateTime类
    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("C:\\Users\\wss\\Desktop\\test.text");
    //write("C:/Users/wss/Desktop/test.text");
    
    //read("C:/Users/wss/Desktop/test.text");

    info("C:/Users/wss/Desktop/test.text");

    return a.exec();
}

4、Qt中的文件操作 

Qt中提供了临时文件操作类QTemporaryFile

         -安全地创建一个全局唯一的临时文件 

         -当对象销毁时对应的临时文件将被删除 

         -临时文件的打开方式为QIODevice::ReadWrite (默认)

         -临时文件常用于大数据传递或者进程间通信的场合 

                             

5、编程实验 

临时文件的使用    31-2.pro 

#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("This is a temporary file\n");
        tempFile.close();
    }

    QFileInfo info(tempFile);

    qDebug() << info.isFile();
    qDebug() << info.path();
    qDebug() << info.fileName();

    return a.exec();
}

 

6、小结 

Qt通过统一的方式读写文件和外部设备 

Qt中IO设备的类型分为顺序存取和随机存取两种 

QFile提供了文件操作相关的方法 

QFilelnfo提供了读取文件属性相关的方法 

Qt中提供了临时文件操作类QTemporaryFile 

猜你喜欢

转载自blog.csdn.net/qq_39654127/article/details/81486404