1 QByteArray类概述
- QByteArray类指字节数组,用QByteArray比const char *这种类型要便利的多。
- QByteArray类可用来存储包括’\0’的字节数组,或是传统的8bit以’\0’结尾的字符串,它使用了隐式共享的技术。
- 使用QByteArray类我们能够很方便的对数据包进行操作,可以先把数据包转换成QByteArray类型,对QByteArray可以较为方便地在后面或前面加入新数据,形成的新QByteArray可以很方便地通过网口发送。Qt中TCP或UDP发送和接收数据都是使用的QByteArray。
2 QByteArray类接口函数
2.1. 初始化QByteArray
QByteArray::QByteArray(const char *data, int size = -1);//从data开始的size字节构建QByteArray
2.2. QByteArray的操作
//在前面或后面添加
QByteArray &QByteArray::append(const QByteArray &ba);
QByteArray &QByteArray::append(const char *str);
QByteArray &QByteArray::prepend(const QByteArray &ba);
QByteArray &QByteArray::prepend(const char *str);
char* QByteArray::data();//返回一个指向QByteArray第一个单元的指针
int QByteArray::size() const;//返回QByteArray的字节个数
void QByteArray::resize(int size);//设置QByteArray的大小,如果size比现在大,则多余部分未初始化,如果小,则从尾部截去
2.3 QByteArray的编码转换
//与不同进制之间
//hex
[static] QByteArray QByteArray::fromHex(const QByteArray &hexEncoded);//从16进制编码转换
QByteArray QByteArray::toHex() const;//转换为16进制编码
QByteArray text = QByteArray::fromHex("517420697320677265617421");
qDebug() << text.data(); // returns "Qt is great!"