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类参考的更多相关文章

  1. Android类参考---Fragment

    Android类参考---Fragment public final boolean isAdded() 如果该Fragment对象被添加到了它的Activity中,那么它返回true,否则返回fal ...

  2. Inno Setup入门(十六)——Inno Setup类参考(2)

    Inno Setup入门(十六)——Inno Setup类参考(2) http://379910987.blog.163.com/blog/static/33523797201112755641236 ...

  3. QDataStream类参考(串行化数据,可设置低位高位,以及版本号),还有一个例子

    QDataStream类提供了二进制数据到QIODevice的串行化. #include 所 有成员函数的列表. 公有成员 QDataStream () QDataStream ( QIODevice ...

  4. QFtp类参考

    QFtp是一个用来实现FTP协议的类. 详情请见…… #include <qftp.h> 继承了QNetworkProtocol. 所有成员函数的列表. 公有成员 QFtp () virt ...

  5. QWidget类参考

    QWidget类是所有用户界面对象的基类. 详情请见…… #include <qwidget.h> 继承QObject和QPaintDevice. 被QButton.QFrame.QDia ...

  6. Shiro 使用 JWT Token 配置类参考

    项目中使用了 Shiro 进行验证和授权,下面是 Shiro 配置类给予参考. 后来并没有使用 Shiro,感觉使用 JWT 还是自己写拦截器比较灵活,使用 Shiro 后各种地方需要魔改,虽然功能也 ...

  7. QStyleFactory类参考

      QStyleFactory类创建QStyle对象.#include <QStyleFactory> 静态公有成员QStyle* create(const QString & k ...

  8. Inno Setup入门(二十二)——Inno Setup类参考(8)

    : Install Setup 2013-02-02 11:31 477人阅读 评论(0) 收藏 举报 列表框 列表框(ListBox)是Windows应用程序中重要的输入手段,其中包括多个选项用户可 ...

  9. Inno Setup入门(二十一)——Inno Setup类参考(7)

    Install Setup 2013-02-02 11:31 378人阅读 评论(0) 收藏 举报 复选框 复选框(CheckBox)用于多个并不互斥的几个选项中作出一个或者多选择,例如字体可以有粗体 ...

随机推荐

  1. 【转】PowerDesigner使用方法小结

    本文转自:http://www.cnblogs.com/afarmer/archive/2012/11/05/2755327.html PowerDesigner多用来进行数据库模型设计,具有SQL语 ...

  2. Linux下配置JDK

    下面以CentOS为例,详细说一下Linux下配置JDK的过程 首先按照约定俗成的习惯,将jdk放在/usr/local/java下,首先进入/usr/local然后新建一个目录java 然后我们需要 ...

  3. 22.python笔记之web框架

    一.web框架本质 1.基于socket,自己处理请求 #!/usr/bin/env python3 #coding:utf8 import socket def handle_request(cli ...

  4. ssm操作控制台输出sql语句 log4j.properties

    # Configures Log4j for Tomcat and Sakai # use "A" for log in with catalina.out (actually s ...

  5. July 25th, Week 31st Monday, 2016

    We will not go quietly into the night. 今夜,我们将奋战到底. We will be the champion. We will not stop fightin ...

  6. CSS对字体单位的总结

    国内的设计师大都喜欢用px,而国外的网站大都喜欢用em和rem,那么三者有什么区别,又各自有什么优劣呢? PX特点 1. IE无法调整那些使用px作为单位的字体大小: 2. 国外的大部分网站能够调整的 ...

  7. 6个朋友(codevs 2832)

    2832 6个朋友  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解       题目描述 Description 有这么一种说法:认识6个人,你就认识全世 ...

  8. php封装练习

    <body> <?php class jisuan { private $a; private $b; function __construct($a,$b) { $this-> ...

  9. Java Hour 56 Spring 和 Hibernate 的集成

    上一章节我们完成了一个简单的Spring 的试验品,这章要让Spring 上战场了,不要慌,步骤都是一样的. Spring 对 Hibernate 的支持是很多方面的,第一个战场是SessionFac ...

  10. hdu 5294 Tricks Device(2015多校第一场第7题)最大流+最短路

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5294   题意:给你n个墓室,m条路径,一个人在1号墓室(起点),另一个人在n号墓室(终点),起点的那 ...