通过QDataStream读取/写入字节数组



我有一个字节图像数组,我想把这个字节数组写入另一个字节数组,在第二个字节数组上添加另一个值,我正在使用这个代码,但我认为有些东西是错误的

 QByteArray byteArray;
 QDataStream ds(&byteArray,QIODevice::ReadWrite);
 ds<<(qint32)20;
 ds<<bArray;
 qint32 code;
 ds>>code;

当我跟踪ds>>代码时,它总是有0值,但实际上它必须有20值,我使用了ds. resetstatus ();但它再次返回0值

我怀疑QDataStream::operator<<函数设置了某种指针/迭代器/索引来指向下一个位置,当下一次调用时,它们可以开始插入数据。QDataStream::operator>>可能从相同的位置开始读取。

QDataStream::resetStatus()不会改变对象读/写的位置。它只是将状态重置为QDataStream::Ok,以允许您在发生错误后从流中读取。

您可以使用两个QDataStream对象——一个用于写入QByteArray,另一个用于从同一个QByteArray中读取。

QByteArray byteArray;
QDataStream ds_w(&byteArray,QIODevice::WriteOnly);
QDataStream ds_r(&byteArray,QIODevice::ReadOnly);
ds_w << (qint32)20;
ds_w << bArray;
qint32 code;
ds_r >> code;

相关内容

  • 没有找到相关文章

最新更新