解析QByteArray

时间:2014-12-16 09:36:09

标签: c++ qt parsing qbytearray

我在QByteArray中有一个文件名

QString file_name = "icon.jpg";
QByteArray qba1; qba+=file_name;

我将文件的内容放入QByteArray

QFile file("C:\\Devel\\icon.jpg"); 
if (file.open(QIODevice::ReadOnly)){
     QByteArray content = file.readAll();
}
  1. 如何连接文件名和QByteArray类型的一个变量的内容?
  2. 如何将此变量QByteArray解析回文件名和内容?

1 个答案:

答案 0 :(得分:0)

最简单的方法是从文件名的长度开始,然后是文件名本身,然后是数据。解析数据就像首先读取文件名长度,读取文件名,然后读取数据一样简单。

QByteArray qbaFileName((const char*)(file_name.utf16()), file_name.size() * 2);

QByteArray byteArray;
QDataStream stream(&byteArray, QIODevice::WriteOnly);
stream << (int)qbaFileName.size();    // put length of filename on stream
stream << qbaFileName;                // put filename on stream
stream << file.readAll();             // put binary data on stream