QTemporaryFile tf;
tf.open ();
QDataStream tfbs (&tf);
tfbs << "hello\r\n" << "world!\r\n";
const int pos = int (tf.pos ());
QByteArray ba;
ba.append ("hello\r\n");
ba.append ("world!\r\n");
const int size = ba.size ();
基本上我的问题是,我做错了什么?为什么是 pos > size?我不应该使用 << 吗?我不应该使用 QDataStream 吗?
编辑:有没有办法配置 QDataStream 或 QTemporaryFile 以便 << 运算符不会在字符串前面加上 32 位长度并将空终止符存储在文件中?当我只有一系列带引号的字符串时调用 QDataStream::writeBytes 并且 QStrings 会产生非常丑陋的代码。