QBuffer的基本使用

QBuffer为Qtl里面的缓冲区类

缓冲区的本质就是一段连续的存储空间

在Qt中QBuffer可以看为一个特殊的IO设备

文件辅助类(QDataStream ,QTextStream)可以直接作用于缓冲区类

#include 
#include 
#include 
#include 
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    QBuffer buffer;						//定义缓冲区
    QString str = "hello",tmp;
    buffer.open(QBuffer::ReadWrite);	//缓冲区的打开方式读写
    QDataStream out( &buffer );			//数据流定向到缓冲区
    out << str;							//往数据流里面输入数据

    QDataStream in(&buffer);			//数据流定向到缓冲区
    buffer.open( QBuffer::ReadOnly);	//缓冲区的打开方式只读
    in >> tmp;							//读取数据流里面的数据
    qDebug()<<tmp;						//输出读取到的数据
    return a.exec();
}

QBuffer的一些常用接口

const QByteArray &buffer() const 获取缓冲区的数据
const QByteArray &data() const 获取缓冲区的数据(二进制流)
void setBuffer(QByteArray *byteArray) 设置缓冲区数据
void setData(const QByteArray &data) 设置缓冲区数据
void setData(const char *data, int size) 设置缓冲区数据

这里BiBi一句,buffer.data().data()获取缓冲区的地址

const char *from = buffer.data().data();    //指向数据

QBuffer应用场景:QSharedMemory共享内存读写时常搭配QBuffer

你可能感兴趣的:(Qt数据结构)