標籤:
QBuffer類參考
QBuffer類是一個操作QByteArray的輸入/輸出裝置。 詳情請見……
#include <qbuffer.h>
繼承了QIODevice。
所有成員函數的列表。
公有成員
- QBuffer ()
- QBuffer ( QByteArray buf )
- ~QBuffer ()
- QByteArray buffer () const
- bool setBuffer ( QByteArray buf )
- virtual Q_LONG writeBlock ( const char * p, Q_ULONG len )
- Q_LONG writeBlock ( const QByteArray & data )
詳細描述
QBuffer類是一個操作QByteArray的輸入/輸出裝置。
QBuffer是用來讀寫記憶體緩衝的。它通常與QTextStream或QDataStream一起使用。QBuffer有一個相關聯的QByteArray用來儲存緩衝資料。緩衝的大小(size())會根據所寫的資料自動調整。
建構函式QBuffer(QByteArray)以一個現有的位元組數組建立一個QBuffer。位元組數組也可以由setBuffer()來設定。向QBuffer寫將會更改初始位元組數組,因為QByteArray是明確共用。
在使用之前使用open()來開啟緩衝並且設定模式(唯讀、唯寫等等)。close()可以關閉緩衝。在重新開啟或者調用setBuffer()之前緩衝必須被關閉。
使用QBuffer的一個普通方式是通過QDataStream或QTextStream,它們可以通過一個QBuffer參數來構造。為了方便,QDataStream和QTextStream也可以使用一個QByteArray參數來構造。這些建構函式建立並且開啟一個內部的QBuffer。
注意QTextStream也可以操作QString(一個Unicode字串),而QBuffer不能。
你也可以直接通過標準的QIODevice函數readBlock()、writeBlock()、readLine()、at(),、getch()、putch()和ungetch()來使用QBuffer。
也可以參考QFile、QDataStream、QTextStream、QByteArray、共用類、 集合類和輸入/輸出和網路。
成員函數文檔QBuffer::QBuffer ()
構造一個空的緩衝。
QBuffer::QBuffer ( QByteArray buf )
操作buf來構造一個緩衝。 如果你使用寫入模式(IO_WriteOnly或者IO_ReadWrite)開啟緩衝並且寫一些東西到緩衝,buf將被修改。
執行個體:
QCString str = "abc"; QBuffer b( str ); b.open( IO_WriteOnly ); b.at( 3 ); // 定位到第四個字元(終結符\0) b.writeBlock( "def", 4 ); // 寫入“def”,包括終結符\0 b.close(); // 現在,str就是“abcdef”和一個終結符\0
也可以參考setBuffer()。
QBuffer::~QBuffer ()
析構緩衝。
QByteArray QBuffer::buffer () const
返回這個緩衝的位元組數組。
也可以參考a href="#setBuffer">setBuffer()。
bool QBuffer::setBuffer ( QByteArray buf )
把緩衝的內容替換為buf。
當isOpen()為真時,這個操作也許不能被完成。
注意如果你使用寫入模式(IO_WriteOnly或者IO_ReadWrite)開啟緩衝並且寫一些東西到緩衝,buf也會被修改因為QByteArray是一個明顯共用類。
也可以參考buffer()、open()和close()。
Q_LONG QBuffer::writeBlock ( const char * p, Q_ULONG len ) [虛]
把p中的len位元組寫到緩衝的當前索引位置,如果需要的話,將會覆蓋原有的資料並且擴充緩衝。返回實際所寫的位元組數量。
如果發生任何錯誤,返回-1。
也可以參卡readBlock()。
Reimplemented from QIODevice.
Q_LONG QBuffer::writeBlock ( const QByteArray & data )
這是一個重載成員函數,提供方便。它的行為和上面的函數基本一致。
這個方便的函數使用data與調用writeBlock( data.data(), data.size() )是一樣的。
[轉] - QBuffer類參考