您好,登錄后才能下訂單哦!
小編給大家分享一下Qt中文本流和數據流、緩沖操作和數據操作的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
A.Qt中講文件類型分為2大類
1.文本文件--文件內容是可讀的文本字符
2.數據文件--文件內容是直接的二進制數據
QFile直接支持文本文件和數據文件的讀寫
B.Qt提供了輔助類簡化了文本文件/數據文件的讀寫
1.QTextStream--寫入的數據全部轉換為可讀文本
2.QDataStream--寫入的數據根據類型轉換為二進制數據
IO設備輔助類的使用方式
不同的Qt版本的數據流文件格式可能不同
void setVersion(int v)//設置的版本號
int version()const//獲取讀寫版本號
代碼示例
#include <QCoreApplication> #include <QFile> #include <QDebug> int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); QFile file("C:/Users/59673/Desktop/test.hex"); if( file.open(QIODevice::WriteOnly) ) { QString dt = "mylovedandanxiaohai"; double value = 3.14; file.write(dt.toStdString().c_str()); file.write(reinterpret_cast<char*>(&value), sizeof(value)); file.close(); } if( file.open(QIODevice::ReadOnly) ) { QString dt = ""; double value = 0; dt = QString(file.read(19)); file.read(reinterpret_cast<char*>(&value), sizeof(value)); file.close(); qDebug() << dt; qDebug() << value; } return a.exec(); }
運行結果
A.Qt中緩沖區的概念
1.緩沖區的本質為一段連續的存儲空間
2.QBuffer是Qt中緩沖區相關的類
3.在Qt中可以將緩沖區看作一種特殊的IO設備
4.文件流輔助類可以直接用于操作緩沖區
QBuffer緩沖區的使用方式
代碼示例
#include <QtCore/QCoreApplication> #include <QBuffer> #include <QByteArray> #include <QDataStream> #include <QDebug> void write_buffer(int type, QBuffer& buffer) { if( buffer.open(QIODevice::WriteOnly) ) { QDataStream out(&buffer); out << type; if( type == 0 ) { out << QString("mylove"); out << QString("3.1415"); } else if( type == 1 ) { out << 3; out << 1415; } else if( type == 2 ) { out << 3.1415; } buffer.close(); } } void read_buffer(QBuffer& buffer) { if( buffer.open(QIODevice::ReadOnly) ) { int type = -1; QDataStream in(&buffer); in >> type; if( type == 0 ) { QString dt = ""; QString pi = ""; in >> dt; in >> pi; qDebug() << dt; qDebug() << pi; } else if( type == 1 ) { int a = 0; int b = 0; in >> a; in >> b; qDebug() << a; qDebug() << b; } else if( type == 2 ) { double pi = 0; in >> pi; qDebug() << pi; } buffer.close(); } } int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); QByteArray array; QBuffer buffer(&array); write_buffer(0, buffer); read_buffer(buffer); return a.exec(); }
運行結果
B.QBuffer緩沖區的使用場合
1.在線程間進行不同類型的數據傳遞
2.緩存外部設備中的數據返回
3.數據讀取速度小于數據寫入速度
C.QDir是Qt中功能強大的目錄操作類
1.Qt中的目錄分隔符統一使用'/'
2.QDir能夠對目錄進行任意的操作--創建、刪除、重命名
3.QDir能夠獲取指定目錄中的所有條目--文件和文件夾
4.QDir能夠使用過濾字符串獲取指定條目
5.QDir能夠獲取系統中的所有根目錄
目錄操作基礎示例
C.QFileSystemWatcher用于監控文件和目錄的狀態變化
1.能夠監控特定目錄和文件的狀態
2.能夠同時對多個目錄和文件進行監控
3.當目錄或者文件發生改變時將觸發信號
4.可以通過信號與槽的機制捕捉信號并作出響應
以上是“Qt中文本流和數據流、緩沖操作和數據操作的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。