我正在尝试按照教程here和序列化Qt对象。这是我的代码:
QFile file("/Users/kaustav/Desktop/boo.dat");
if (!file.open(QIODevice::WriteOnly)) {
qDebug() << "Cannot open file for writing: "
<< qPrintable(file.errorString()) << endl; //no error message gets printed
return 0;
}
QDataStream out(&file); // we will serialize the data into the file
out.setVersion(QDataStream::Qt_5_3); //adding this makes no difference
out << QString("the answer is"); // serialize a string
out << (qint32)42;
当我运行这个程序时,文件可以在我的桌面上创建,但它的大小是0 kB,它是空白的。当然,当我尝试这个时:
QFile file("/Users/kaustav/Desktop/boo.dat");
file.open(QIODevice::ReadOnly);
QDataStream in(&file); // read the data serialized from the file
in.setVersion(QDataStream::Qt_5_3);
QString str;
qint32 w;
in >> str >> w;
我在str
中收到一个空白字符串。我究竟做错了什么?如果有任何帮助,我会根据Qt Creator 3.1.1
使用Qt 5.2.1
。