一、QByteArray介绍
- 概念:提供一个字节数组(序列),QByteArray可用于存储原始字节(包括“\ 0” )和传统的8位 “\ 0” 端接字符串,使用 QByteArray比使用const char 更方便.
- 在IO操作中,C语言常使用const char ,而Qt中常使用QByteArray
二、常用语法
//函数
size(); //得到大小,以字节为单位
resize(); //定义大小
at(); //通过索引取值
演示案例
QByteArray ba("Hell");
qDebug()<<ba.size(); //4
ba.resize(5);
qDebug()<<ba.size(); //5
qDebug()<<ba[0]; //H
ba[4]='0';
qDebug()<<ba; //Hello
按字节初始化、访问
QByteArray ba;
ba.resize(4);
ba[0] = 0x30;
ba[1] = 0x31;
ba[2] = 0x32;
ba[3] = 0x33;
std::cout<<ba.at(3)<<std::endl; //3
注:遇到\0结束
QByteArray ba("hel\0l\0o", 5);
qDebug()<<ba.size(); //5
qDebug()<<ba; //hel
三、QByteArrar与char*相互转换
QByteArrar转char*
QByteArray ba("Hello");
const char * str = ba.constData();
std::cout << str << std::endl;
char*转QByteArrar
const char *p = "abc";
QString c = QString(p);
QByteArray ba = c.toUtf8();
qDebug()<<ba;
const char * hello = "hello";
QByteArray ba(QByteArray::fromRawData(hello, 5));
qDebug()<<ba;