2013-12-16 173 views
1
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'(二进制)QT二进制文件读写

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'.if CH和MT变量INT总是MT = 4为什么?如何编写ch(二进制文件)并从二进制文件中读取

+0

您需要打开()该文件进行写入/读取。 –

+0

对不起,我在编写代码。我打开并没有改变问题仍然 – seniorc

+0

什么是由in.status()返回的值和out.status() – UmNyobe

回答

0

4 number是您的数据的长度。 QDataStream存储数据之前的长度,表示需要读取多少个字节才能获取写入的数据。你的数据已经写完了。