QDataStream的一个价值1万元的痛

OS:Centos66

软件:QT5.5

现象:

将旧软件改造为新的软件,我的叫modem软件,出现了一个情况。

使用QDataStream代替旧的fread, fwrite.

结果:

存盘的文件总多出一些字节,看起来像文件长度,而且就在开头。

原因:

写入使用了QDataStream.writeBytes(data, len)

查QT4.8, QT5.5的帮助,发现这是写序列化后的数据。写法是,先写数据长度,再写数据。

解决方法:

改用QDataStream::writeRawData(data, len)

注意:在QT4.8里写原始数据属性叫writeRawBytes(data, len)








你可能感兴趣的:(QDataStream的一个价值1万元的痛)