在进行文件读写时,文件读写的方式存在一个大坑:
打开文件时,如果加上了 ” QIODevice::Text ”,即是以文本模式打开的,但是如果我们的文件是一个二进制文件,那么就会出现“丢数据”的情况,打开二进制文件是应该只使用“QIODevice::ReadOnly”打开方式来读取文件
QFile file(fileName);
if(!file.open(QIODevice::ReadOnly | QIODevice::Text))
{
qDebug() << "Can't open the file!" << endl;
return;
}
QDataStream in(&file);
QByteArray totalArray;
quint8 data;
while(!in.atEnd()) {
in >> data;
totalArray.append(static_cast<uchar>(data));// bin文件里的数据
}
file.close();
//file.size - totalArray.size() = 1;