文章目录
1 Qt中的缓冲区QBuffer
Qt中缓冲区的概念:
- 缓冲区的本质为一段连续的存储空间。
- QBuffer是Qt中缓冲区相关的类。
- 在Qt中可以将缓冲区看作一种特殊的IO设备。
- 文件流辅助类可以直接用于操作缓冲区。
QBuffer缓冲区的使用方式:

QBuffer缓冲区的使用场合:
- 在线程间进行不同类型的数据传递。
- 缓存外部设备中的数据返回。
- 数据读取速度小于数据写入速度。
编程实验:缓冲区操作
#include <QtCore/QCoreApplication>
#include <QBuffer>
#include <QByteArray>
#include <QDataStream>
#include <QDebug>
void write_buffer(int type, QBuffer& buffer)
{
if( buffer.open(QIODevice::WriteOnly) )
{
QDataStream out(&buffer);
out << type;
if( type == 0 )
{
out << QString("D.T.Software");
out << QString("3.1415");
}
else if( type == 1 )
{
out << 3;
out << 1415;
}
else if( type == 2 )
{
out << 3.1415;
}
buffer.close();
}
}
void read_buffer(QBuffer& buffer)
{
if( buffer.open(QIODevice::ReadOnly) )
{
int type = -1;
QDataStream in(&buffer);
in >> type;
if( type == 0 )
{
QString dt = "";
QString pi = "";
in >> dt;
in >> pi;
qDebug() << dt;
qDebug() << pi;
}
else if( type == 1 )
{
int a = 0;
int b = 0;
in >> a;
in >> b;
qDebug() << a;
qDebug() << b;
}
else if( type == 2 )
{
double pi = 0;
in >> pi;
qDebug() << pi;
}
buffer.close();
}
}
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QByteArray array;
QBuffer buffer(&array);
write_buffer(2, buffer);
read_buffer(buffer);
return a.exec();
}
参考资料:
1499



被折叠的 条评论
为什么被折叠?



