我正在研究一些代码(KDE的kwallet的一部分),它将QMap存储为二进制表示,使用
QByteArray mapData;
QDataStream ds(&mapData, QIODevice::WriteOnly);
ds << map;
在其他地方,使用
将这种二进制表示形式读回QMapQByteArray v;
if( !v.isEmpty() ){
QDataStream ds( &v, QIODevice::ReadOnly );
ds >> map;
}
我想修改它以便使用文本表示。我在Qt论坛上发现了一个可以使用QTextStream而不是QDataStream的建议。没有给出示例解决方案,当我简单地用我的代码中的前一个函数替换后者时,它将无法编译,因为QMap缺少相应的&lt;&lt;和&gt;&gt;运营商。 我是否遗漏了某些东西,或者在没有编写我自己的解析器(用于读回存储的数据)的情况下,我想要的是什么?