溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Qt中如何使用QFile類打開文件

發(fā)布時間:2021-06-11 15:23:53 來源:億速云 閱讀:1898 作者:小新 欄目:編程語言

這篇文章給大家分享的是有關(guān)Qt中如何使用QFile類打開文件的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

Qt文件操作類QFile簡介

Qt中使用QFile類來操作文件的輸入/輸出。繼承至QIODevice,QIODevice類是輸入/輸出設(shè)備的基類,

為設(shè)備提供了公共實現(xiàn)和抽象接口用于讀寫塊數(shù)據(jù)。QIODevice又繼承至QObject。

1、使用QFile類打開文件

QFile的構(gòu)造函數(shù)

QFile(const QString &name) //傳入一個文件路徑

構(gòu)造完成后,并沒有打開文件,需要使用QFile::open函數(shù)來打開文件

[virtual] bool QFile::open(OpenMode mode);
/*
*OpenMode mode 打開方式,是一個枚舉類型
*QIODevice::NotOpen 不打開
*QIODevice::ReadOnly 只讀方式
*QIODevice::WriteOnly 讀寫方式
*QIODevice::ReadWrite 讀寫方式
*QIODevice::Append   追加方式
*QIODevice::Truncate 階段方式
*QIODevice::Text     轉(zhuǎn)換不同平臺的換行,讀的時候把所有換行轉(zhuǎn)成'\n',寫的時候再把'\n'轉(zhuǎn)換對應(yīng)平臺的換行
*QIODevice::Unbuffered 不使用緩沖區(qū)
*/

例如:

QFile file("d:/123.txt");
file.open(QIODevice::ReadOnly);

2、QFile類關(guān)閉文件

[virtual] void QFileDevice::close(); //刷新緩沖區(qū),并關(guān)閉文件

3、QFile類文件讀操作

QIODevice::read函數(shù)

QByteArray QIODevice::read(qint64 maxSize);//讀取maxSize個字節(jié),內(nèi)部位置指針后移maxSize,并返回一個QByteArray對象。

例如:

QFile file("d:/123.txt");
file.open(QIODevice::ReadOnly);
qDebug() << file.read(10) << endl;
file.close();

QIODevice::readLine函數(shù)

QByteArray QIODevice::readLine(qint64 maxSize = 0) //讀取一行,但是這一行不能超過maxSize字節(jié),maxSize = 0代表不限制行字節(jié)數(shù)。

例如:

QFile file("d:/123.txt");
file.open(QIODevice::ReadOnly);
qDebug() << file.readLine(10) << endl; 
file.close();

QIODevice::readAll函數(shù)

QByteArray QIODevice::readAll()

4、QFile類文件寫操作

QIODevice::write函數(shù)

qint64 QIODevice::write(const QByteArray &byteArray); //將byteArray寫入文件,寫完內(nèi)部位置指針后移

例如:

QFile file("d:/123.txt");
file.open(QIODevice::ReadWrite | QIODevice::Text); //打開模式可以使用‘|'組合
QByteArray byte("hellworld");
file.write(byte);
file.write(byte);
file.close();

5、QDataStream

流控文件輸入輸出可以使用QDataStream。

流控寫入

#include <QDataStream>
#include <QDebug>
#include <QFile>
int main(int argc, char**argv)
{
    QFile file("d:/123.txt");
    file.open(QIODevice::ReadWrite);
    QDataStream stream(&file);
    int a = 10;
    QString str = "helloworld";
    stream << a << str;
    file.close();
    return 0;
}

流控讀取

#include <QDataStream>
#include <QDebug>
#include <QFile>
int main(int argc, char**argv)
{
    QFile file("d:/123.txt");
    file.open(QIODevice::ReadWrite);

    QDataStream stream(&file);
    int a;
    QString str;
    stream >> a >> str;
    qDebug() << "a:" << a << "str:" << str << endl;
    file.close();
    return 0;
}

感謝各位的閱讀!關(guān)于“Qt中如何使用QFile類打開文件”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI