当前位置: 首页 > news >正文

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;
}

相关文章:

  • Winform基础知识61-80
  • Vi/Vim命令详解:高效文本编辑的利器
  • std::stack和std::queue
  • 判断一个对象上有没有相关属性的优雅写法、no-undefined
  • C++ primer plus 类和对象上
  • Spring Security 的认证核心组件
  • 【mysql】centOS7安装mysql详细操作步骤!
  • Windows10安装Rust 和ZED(失败)
  • P6772 [NOI2020] 美食家
  • WebSocket的参数粗略解释
  • AVL树的平衡算法的简化问题
  • 数据类型及sizeof,进制转换
  • go中实现子模块调用main包中函数的方法
  • /etc/sysconfig/jenkins 没有这个文件
  • 计算机网络-TCP/IP协议族
  • 无再暴露源站!群联AI云防护IP隐匿方案+防绕过实战
  • netsh实现TCP端口转发
  • 40.动态规划13
  • Ansible命令行模式常用模块使用案例(三)
  • Python与Solidity联手:从跨语言智能合约开发到区块链生态跃迁
  • 上海这场有温度的“人才集市”,为更多人才搭建“暖心桥”
  • 打造信息消费新场景、新体验,上海信息消费节开幕
  • 著名心血管病学专家李国庆教授逝世,享年63岁
  • “走进书适圈”:一周城市生活
  • 美官方将使用华为芯片视作违反美出口管制行为,外交部回应
  • 全国省市县国土空间总体规划已基本批复完成,进入全面实施阶段