1. 程式人生 > >Qt 筆記:Qt中的IO操作

Qt 筆記:Qt中的IO操作

Qt中IO操作的處理方式

-Qt通過統一的介面簡化了檔案與外部裝置的操作方式

-Qt中的檔案被看做一種特殊的外部裝置

-Qt中的檔案操作與外部裝置的操作相同

IO操作中的關鍵函式介面

-開啟裝置:bool open(OpenMode mode)

-讀取資料:QByteArray read(qint64 maxSize)

-寫入資料:qint64 write(const QByteArray &byteArray)

-關閉裝置:void close()

IO操作的本質:連續儲存空間的資料讀寫

Qt中IO裝置的型別

-順序存取裝置

·只能從頭開始順序的讀寫資料,不能指定資料的讀寫位置

-隨機存取裝置

·可以定位到任意的位置進行資料的讀寫(seek function)

Qt中IO裝置的繼承層次圖

QFile是Qt中用於檔案操作的類

QFile物件物件到計算機上的一個檔案

QFile file("C:/test.txt");

if(file.open(QIODevice::WriteOnly | QIIODevice::Text))
{
    file.write("some");
    file.close();
}

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

    qDebug() << str;

    file.close();
}

QFileInfo類:讀取檔案屬性資訊

QFile file("C:/test.txt");
QFileInfo info(file);

qDebug() << info.exists();
qDebug() << info.isFile();
qDebug() << info.isReaddable();
qDebug() << info.isWritable();
qDebug() << info.created();
qDebug() << info.lastRead();
qDebug() << info.lastModified();
qDebug() << info.path();
qDebug() << info.fileName();
qDebug() << info.suffix();
qDebug() << info.size();

Qt中提供了臨時檔案操作類QTemporaryFile

-安全地建立一個全域性唯一的臨時檔案

-當物件銷燬時對應的臨時檔案將被刪除

-歷史檔案的開啟方式為QIODevice::ReadWrite

-臨時檔案常用於大資料傳遞或者程序間通訊的場合

QTemporaryFile tempFile;

if( tempFile.open() )
{
    tempFile.write("some");
    tempFile.close();
}

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

總結:

·Qt通過統一的方式讀寫檔案和外部裝置

·Qt中IO裝置的型別分為順序存取和隨機存取兩種

·QFile提供了檔案操作相關的方法

·QFileInfo提供了讀取檔案屬性相關的方法

Qt中提供了臨時檔案操作類QTemporaryFile