Qt基礎開發之Qt檔案操作類QFile讀寫檔案的詳細方法與例項及QDataStream的使用方法
阿新 • • 發佈:2020-03-16
Qt檔案操作類QFile簡介
Qt中使用QFile類來操作檔案的輸入/輸出。繼承至QIODevice,QIODevice類是輸入/輸出裝置的基類,
為裝置提供了公共實現和抽象介面用於讀寫塊資料。QIODevice又繼承至QObject。
1、使用QFile類開啟檔案
QFile的建構函式
QFile(const QString &name) //傳入一個檔案路徑
構造完成後,並沒有開啟檔案,需要使用QFile::open函式來開啟檔案
[virtual] bool QFile::open(OpenMode mode); /* *OpenMode mode 開啟方式,是一個列舉型別 *QIODevice::NotOpen 不開啟 *QIODevice::ReadOnly 只讀方式 *QIODevice::WriteOnly 讀寫方式 *QIODevice::ReadWrite 讀寫方式 *QIODevice::Append 追加方式 *QIODevice::Truncate 階段方式 *QIODevice::Text 轉換不同平臺的換行,讀的時候把所有換行轉成'\n',寫的時候再把'\n'轉換對應平臺的換行 *QIODevice::Unbuffered 不使用緩衝區 */
例如:
QFile file("d:/123.txt"); file.open(QIODevice::ReadOnly);
2、QFile類關閉檔案
[virtual] void QFileDevice::close(); //重新整理緩衝區,並關閉檔案
3、QFile類檔案讀操作
QIODevice::read函式
QByteArray QIODevice::read(qint64 maxSize);//讀取maxSize個位元組,內部位置指標後移maxSize,並返回一個QByteArray物件。
例如:
QFile file("d:/123.txt"); file.open(QIODevice::ReadOnly); qDebug() << file.read(10) << endl; file.close();
QIODevice::readLine函式
QByteArray QIODevice::readLine(qint64 maxSize = 0) //讀取一行,但是這一行不能超過maxSize位元組,maxSize = 0代表不限制行位元組數。
例如:
QFile file("d:/123.txt"); file.open(QIODevice::ReadOnly); qDebug() << file.readLine(10) << endl; file.close();
QIODevice::readAll函式
QByteArray QIODevice::readAll()
4、QFile類檔案寫操作
QIODevice::write函式
qint64 QIODevice::write(const QByteArray &byteArray); //將byteArray寫入檔案,寫完內部位置指標後移
例如:
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; }
本文主要介紹了Qt檔案操作類QFile讀寫檔案的詳細方法與例項及QDataStream的使用方法,更多關於Qt基礎開發知識請檢視下面的相關連結