Qt的QBuffer

构造函数

QBuffer(QObject * parent = 0)


用给定的父类构造一个空缓冲区。可以调用setData()用数据填充缓冲区,也可以在写模式下打开缓冲区并使用write()

QBuffer(QByteArray * byteArray, QObject * parent = 0)


1.构造一个QBuffer,使用byteArray指向的QByteArray作为内部缓冲区,并使用给定的父缓冲区。调用者负责确保byteArray在QBuffer被销毁或调用setBuffer()更改缓冲区之前保持有效。QBuffer不接受QByteArray的所有权
2.如果您以只写模式或读写模式打开缓冲区并向QBuffer写入一些内容,byteArray将被修改

例子:(官方帮助文档的)

QByteArray byteArray("abc");
QBuffer buffer(&byteArray);
buffer.open(QIODevice::WriteOnly);
//不向后移动,会直接重写内容哦。
buffer.seek(3);
buffer.write("def", 3);
buffer.close();
// byteArray == "abcdef"

例子

点击这里进入例子

Public Functions

返回缓冲区的引用:buffer()

QByteArray & QBuffer::buffer()


返回对QBuffer内部缓冲区的引用。您可以使用它来修改QBuffer背后的QByteArray

返回缓冲区的引用(const):buffer()

const QByteArray & QBuffer::buffer() const


返回对QBuffer内部缓冲区的引用。您可以使用它来修改QBuffer背后的QByteArray

返回缓冲区的数据:data()

const QByteArray & QBuffer::data() const


返回缓冲区中包含的数据

指定内部缓冲区:setBuffer(QByteArray * byteArray)

void QBuffer::setBuffer(QByteArray * byteArray)


使QBuffer使用byteArray指向的QByteArray作为它的内部缓冲区。调用者负责确保byteArray在QBuffer被销毁或调用setBuffer()更改缓冲区之前保持有效。QBuffer不接受QByteArray的所有权

设置缓冲区的内容:setData(const QByteArray & data)

void QBuffer::setData(const QByteArray & data)


将内部缓冲区的内容设置为data。这与将数据分配给buffer()是一样的

设置缓冲区的内容:setData(const char * data, int size)

void QBuffer::setData(const char * data, int size)


将内部缓冲区的内容设置为data的第一个size字节。

Reimplemented Public Functions

判断是否已经到结尾:atEnd()

bool QBuffer::atEnd() const


重新实现从QIODevice: atEnd ()。

读取完整行:atEnd()

bool QBuffer::canReadLine() const


如果可以从设备读取完整的数据行,则返回true;否则返回假

关闭缓冲区:close()

void QBuffer::close()


关闭缓冲区

打开方式:open(OpenMode flags)

bool QBuffer::open(OpenMode flags)


以什么方式打开文件

返回当前位置:pos()

qint64 QBuffer::pos() const


获取当前流位置

移动到指定位置:seek(qint64 pos)

bool QBuffer::seek(qint64 pos)


移动到流指定位置

返回数据大小:size()

qint64 QBuffer::size() const


返回文件大小

Reimplemented Protected Functions

读取数据:readData(char * data, qint64 len)

qint64 QBuffer::readData(char * data, qint64 len)


将设备中的最大len读入data,并返回读取的字节数,如果发生错误则返回-1

写入数据:writeData(const char * data, qint64 len)

qint64 QBuffer::writeData(const char * data, qint64 len)


从data写到设备的最大字len。返回写入的字节数,如果发生错误则返回-1

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值