目录

QT文件读取

QT:文件读取

问题:

在文件读取,判断md5值时,遇到py文件读取转String后,再转byte,md5前后不一致问题。

解决方法:

python文件读取要使用 QTextStream ,避免\t 、\r、\n的换行符跨平台问题(window系统换行符和linux换行符不一致)。

QTextStream默认帮你处理了换行符跨平台问题。

\r:回到开头   \n:换行

一般读取文件的方式是:

bool xxxxClass::readFile(const QString &filePath,QByteArray &bytes)
{
    QFile file(filePath);
    if(!file.open(QIODevice::ReadOnly)){
        QString msg = tr("Read [%1] faild: %2").arg(file.fileName(),file.errorString());
        qDebug()<<msg;
        return false;
    }
    bytes = file.readAll();
    file.close();
}

但是这样读出来的python文件会有问题,所以python要使用数据流去读取。

bool xxxxClass::readTextFile(const QString &filePath,QString &text)
{
    QFile file(filePath);
    if(!file.open(QIODevice::ReadOnly | QIODevice::Text)){
        QString msg = tr("Read [%1] faild: %2").arg(file.fileName(),file.errorString());
        qDebug()<<msg;
        return false;
    }
    QTextStream ts(&file);
    text = ts.readAll();
    file.close();
    return true;
}