概述
来源:微信公众号「编程学习基地」
文章目录
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的基本使用所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复