最近在编写一个网络功能,需要将一个文件内容传递到客户端并将改内容以文件形式保存下来。由于文件内容是个加密文件且采用了二进制形式于是客户端就采用了QDataStream这个对象来保存文件。粗略的测试下来没有什么问题,可是在获取写入的文件是否发现写入的文件读取出来内容不正确。经过一番折腾最终发现是QDataStream这个对象引起的问题。原来是我在打开文件的时候加上了QIODevice::Text 这个标识引起的,发现加了这个标识后写入文件都会把原来的\0转换成两个字符写入,因此写入的文件内容就无端多一个字符处理,这样在反向解码就会出现问题。这问题一定要牢记下次不用再折腾了。
相关推荐
liulilittle几秒前
通过高级处理器硬件指令集AES-NI实现AES-256-CFB算法并通过OPENSSL加密验证算法正确性。十秒耿直拆包选手30 分钟前
Qt:Qt桌面程序正常退出注意事项姆路41 分钟前
Qt背景平铺范纹杉想快点毕业2 小时前
初探Qt信号与槽机制君鼎2 小时前
C++操作系统与网络编程(针对特定岗位)一条叫做nemo的鱼3 小时前
从汇编的角度揭开C++ this指针的神秘面纱(上)C++ 老炮儿的技术栈3 小时前
visual studio 2022更改主题为深色白总Server5 小时前
GaussDB 分布式数据库调优(架构到全链路优化)whoarethenext5 小时前
C++/OpenCV地砖识别系统结合 Libevent 实现网络化 AI 接入Antonio9155 小时前
【Linux】Linux基础I/O