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*
- 通过constData()转换
-
QByteArray ba("Hello"); const char * str = ba.constData(); std::cout << str << std::endl;
char*转QByteArrar
- 通过QString的字符集转换
-
const char *p = "abc"; QString c = QString(p); QByteArray ba = c.toUtf8(); qDebug()<<ba;
- 通过fromRawData()
-
const char * hello = "hello"; QByteArray ba(QByteArray::fromRawData(hello, 5)); qDebug()<<ba;