我是靠谱客的博主 失眠荔枝,最近开发中收集的这篇文章主要介绍QBuffer的基本使用,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述



来源:微信公众号「编程学习基地」

文章目录


QBuffer为Qtl里面的 缓冲区类

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

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

可以当成文件流一样使用

#include <QCoreApplication>
#include <QBuffer>
#include <QFile>
#include <QDebug>
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    QFile file("main.cpp");
    QBuffer buffer;						//定义缓冲区
    if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
    {
        qDebug() << file.errorString();
    }
    buffer.open(QBuffer::WriteOnly);	//缓冲区的打开方式写
    //往数据流里面输入数据
    while (!file.atEnd()) {
        QByteArray bateArray = file.readLine();
        buffer.write(bateArray.data(),bateArray.size());	//每次写入size大小字节
    }
    file.close();
    buffer.close();

    buffer.open(QBuffer::ReadOnly);		//缓冲区的打开方式读
    while(!buffer.atEnd())
    {
        QByteArray bateArray;
        buffer.read(bateArray.data(),128);	//每次读取128个字节
        qDebug()<<bateArray.data();
    }
    buffer.close();
    qDebug()<<"========================"<<endl;
    qDebug()<<buffer.buffer();						//输出读取到的数据

    return a.exec();
}

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

#include <QBuffer>
#include <QCoreApplication>
#include <QDataStream>
#include <QDebug>
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

最后

以上就是失眠荔枝为你收集整理的QBuffer的基本使用的全部内容,希望文章能够帮你解决QBuffer的基本使用所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(35)

评论列表共有 0 条评论

立即
投稿
返回
顶部