QFile 读2进制文件

做一个日志解析工具遇到的问题

  QFile readFile(strPath);
  readFile.open(QIODevice::ReadOnly |QIODevice::Text);
    QByteArray by;
    char *bf;
    by = readFile.readAll();

    bf = by.data();
    readFile.close();
发现读出来的数据不正确。打开属性带 QIOdevice::Text 这会是的‘ ’d读不出。应该去掉。

文件打开模式


模式 描述
QIODevice::NotOpen 0x0000 不打开
QIODevice::ReadOnly 0x0001 只读方式
QIODevice::WriteOnly 0x0002 只写方式,如果文件不存在则会自动创建文件
QIODevice::ReadWrite ReadOnly | WriteOnly 读写方式
QIODevice::Append 0x0004 此模式表明所有数据写入到文件尾
QIODevice::Truncate 0x0008 打开文件之前,此文件被截断,原来文件的所有数据会丢失
QIODevice::Text 0x0010 读的时候,文件结束标志位会被转为’ ’;写的时候,文件结束标志位会被转为本地编码的结束为,例如win32的结束位’ ’
QIODevice::UnBuffered 0x0020 不缓存
 
原文地址:https://www.cnblogs.com/dwx-bzdcxy/p/14069682.html