我将QString保存在文件中:
QString str="blabla";
QByteArray _forWrite=QByteArray::fromHex(str.toLatin1());
f.write(_forWrite); // f is the file that is opened for writing.
然后当我读取文件时,我使用QFile :: readAll()来获取QByteArray,但我不知道如何将其转换为QString。
我尝试使用使用QByteArray的构造函数,但它没有用完。我也尝试使用QByteArray :: data()但结果相同。我做错了什么?
答案 0 :(得分:2)
目前尚不清楚为什么要调用QByteArray :: fromHex。 toLatin1()
已经返回QByteArray,其中每个符号用一个字节编码。
[<强>更新强>
你根本不应该致电QByteArray::fromHex,因为:
输入中的无效字符被跳过
无效字符是不是the numbers 0-9 and the letters a-f
答案 1 :(得分:1)
您可以使用QDataStream
#include <QApplication>
#include <QDataStream>
#include <QByteArray>
#include <QFile>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QString strToWrite = "blabla";
QFile fileToWrite("file.bin");
QDataStream dataStreamWriter(&fileToWrite);
fileToWrite.open(QIODevice::WriteOnly);
dataStreamWriter << strToWrite;
fileToWrite.close();
QString strToRead = "";
QFile fileToRead("file.bin");
QDataStream dataStreamReader(&fileToRead);
fileToRead.open(QIODevice::ReadOnly);
dataStreamReader >> strToRead;
fileToRead.close();
qDebug() << strToRead;
return app.exec();
}
输出:&#34; blabla&#34;