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

Qt,二进制文件读写建议

二进制文件写出

// fileName含后缀, 生成随机临时文件名(Tmp_时间戳_进程ID_三位随机数_正式文件名) QString AIbinIOcontrol::geneRandomTmpFilename(QString fileName) { // #include <QDataStream> // #include <QRandomGenerator> // #include <QDateTime> // #include <QCoreApplication> const QString timeStamp = QDateTime::currentDateTime().toString("yyyyMMddhhmmsszzz"); const qint64 pid = QCoreApplication::applicationPid(); const int randNum = QRandomGenerator::global()->bounded(1000); return (QString("Tmp_%1_%2_%3_")+fileName).arg(timeStamp).arg(pid).arg(randNum); } bool WriteOutAIres(QString folderPath, QString fileName, string VersionN) { // ------[保存临时文件]------ // BT_OCT::creatSavePath(folderPath); // 创建保存文件的文件夹 const QString TmpFileName = geneRandomTmpFilename(fileName); // 创建临时文件名 QString filePath = folderPath + "/" + TmpFileName; QFile file(filePath); if (!file.open(QIODevice::WriteOnly)) { cout << "结果保存失败,因为文件地址异常:"+filePath.toStdString() << endl; return false; } QDataStream out(&file); out << VersionN; // 写入版本号名称 out << 各种数据(int,double,map,vector); // 写入数据信息 out << 各种数据(int,double,map,vector); // 写入数据信息 file.close(); // ------[将保存的临时文件rename为正式文件名]------ // QString realfilePath = folderPath + "/" + fileName; QFile realfile(realfilePath); if (realfile.exists()){ if (!realfile.remove()) { file.remove(); cout << "结果保存失败,旧文件无法被删除(临时文件已清理)" << endl; return false; } cout << "旧文件已成功删除" << endl; } if (!QFile::rename(filePath, realfilePath)) { file.remove(); cout << "结果保存失败,临时文件重命名成正式保存文件时失败(临时文件已清理)" << endl; return false; } cout << "###################" << endl; cout << ">>> 结果成功保存 <<<" << endl; cout << "###################" << endl; return true; }

二进制文件读入

bool ReadInAIres(QString folderPath, QString fileName, string VersionN) { BT_OCT::creatSavePath(folderPath); QString filePath = folderPath + "/" + fileName; QFile file(filePath); if (!file.open(QIODevice::ReadOnly)) { cout << "结果读取失败,因为地址异常:"+filePath.toStdString() << endl; return false; } QDataStream in(&file); // ------[读出文件名及版本号]------ // std::string versionName; in >> versionName; if (versionName!=VersionN){ cout << "结果读取失败,因为版本不一致,当前:"+versionName+",期望:"+VersionN << endl; return false; } in >> 数据容器; in >> 数据容器 file.close(); return true; }
http://www.jsqmd.com/news/1145914/

相关文章:

  • 《AI生成内容正在被大规模清洗——同质化营销内容将被剔除,深度思想白皮书成为GEO时代最稀缺的优质信源》
  • 如何在Mac上运行Windows应用:Whisky终极指南,5个简单步骤搞定跨平台
  • L-光滑与μ-强凸函数:5个等价性质与梯度下降收敛性证明
  • 百度网盘解除限速最全指南!2026年小白一键配置,看这篇就够了
  • Unity 动画系统进阶:动画遮罩Animation Mask的制作与应用
  • xv6 lab7 thread
  • 鸿蒙HAR混淆
  • GHelper:重新定义你的华硕笔记本使用体验
  • 自动扒谱软件|2026年最新主流音乐扒谱工具测评
  • 6轴IMU与运动控制MCU在智能穿戴中的精准运动追踪方案
  • ROS2 Humble Livox MID360+FAST-LIO2 动态水平补偿避障节点完整实现和安装角度偏移补偿计算脚本
  • “6级风能飞”不是参数,是市场策略——极端环境能力=竞品进不去的门
  • 一颗冰葡萄的旅程:紫桐冰酒酿造工艺全解密
  • 附录B:在IntelliJ IDEA中打开并运行Java项目(JDK 17)完整教程
  • QT_字符串类应用与常用基本数据类型
  • 共享菜园行业深度分析:商业模式、运营数据与破局路径(2026)
  • AI正在消灭酒店预订的“信息差税“:同一房间OTA价差40%,AI比价正在帮你省钱
  • Netcat for Windows 终极指南:掌握Windows网络调试的瑞士军刀
  • WSL2 + PyTorch 2.3.0 CUDA 12.1 环境配置:3个关键验证步骤与常见 GPU 识别问题排查
  • SCI论文的最佳写作顺序是啥?
  • 智能AI招聘面试系统:HR 真正省下来的时间,藏在面试环节里
  • AI 电动滑行车智能功率 MOSFET 高效选型方案
  • 监督学习 vs 无监督学习:3个核心场景与5种算法实战对比分析
  • 不用GPU、不用写Dockerfile,我是怎么1小时搭出可上线的AI Agent的
  • vue3组合式函数(Composables)的艺术——将业务逻辑从UI组件中连根拔起
  • Windhawk:无需代码的Windows终极个性化定制指南
  • 一晃,就老了
  • 30套可视化大屏模板,直接套用!覆盖经营、销售、生产、财务、人效场景
  • HarmonyOS APP《画伴梦工厂》开发第50篇-从项目到生态——鸿蒙应用上架与持续演进
  • PROPKA蛋白质pKa预测:从入门到精通的完整指南