Qt中的缓冲区QBuffer
程序员文章站
2024-03-13 10:57:03
...
文章目录
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();
}
参考资料:
推荐阅读
-
Qt中的缓冲区QBuffer
-
圆形缓冲区-MapReduce中的
-
详解Java中字符串缓冲区StringBuffer类的使用
-
详解Java中字符串缓冲区StringBuffer类的使用
-
图文精讲(一)——Java中I/O流——字节流(概述、读写文件、文件的拷贝、缓冲区、缓冲流)
-
PyQt(Python+Qt)学习随笔:Qt Designer中Action关联menu菜单和toolBar的方法
-
java8中NIO缓冲区(Buffer)的数据存储详解
-
【Qt5】 Qt 中对于文件全名、基本名、路径、扩展名的获取
-
PHP中对缓冲区控制的代码_PHP教程
-
汇编语言二 在缓冲区VAR中连续存放着3个16位的无符号数,编写程序实现将其按递增关系排列。