[轉] - QBuffer類參考

來源:互聯網
上載者:User

標籤:

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類參考

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.