qt二进制文件的写入和读取

时间:2013-12-16 03:44:42

标签: c++ qt binary

void write(QString filename) {
  QChar ch('b');
  QFile mfile(filename);
  if (!mfile.open(QFile::WriteOnly) {
    qDebug() << "Could not open file for writing";
    return;
  }
  QDataStream out(&mfile);
  out.setVersion(QDataStream::Qt_4_8);
  out << ch;
  mfile.close();
}

打开二进制文件并写入'b'(二进制)

void read(QString filename) {
  QFile mfile(filename);
  if (!mfile.open(QFile::ReadOnly)) {
    qDebug() << "Could not open file for reading";
    return;
  }
  QDataStream in(&mfile);
  in.setVersion(QDataStream::Qt_4_8);
  QChar mT;
  in >> mT;
  qDebug() << mT;
  mfile.close();
}

读但不是mT ='b'。如果ch和mT变量是int总是mT = 4为什么?我如何编写ch(二进制文件)并从二进制文件中读取

1 个答案:

答案 0 :(得分:0)

4号是您数据的长度。 QDataStream存储数据之前的长度,以指示需要读取多少字节才能获得写入的数据。你的数据是在它之后写的。