• 2903阅读
  • 5回复

[提问]qt读取二进制文件,请大家帮忙! [复制链接]

上一主题 下一主题
离线hpplel
 

只看楼主 正序阅读 楼主  发表于: 2018-06-06
以前用c语言较多。fopen(“rb”),读入到unsigned char中。
这个qt读二进制实在是郁闷啊!~看一些例子,一般是写入个int等等,然后按顺序读出来。
没有读出多少字节的?如C中的fread类似的函数啊 ??
有个file.readAll();字符多了怎么办?再写入另一个二进制文件时,还加入了魔术数字,能不让他加吗?
有个readline(),好像是读char型的。
请指点!还是喜欢C里的读写文件,一般不用qt的!!~~
在线uidab

只看该作者 5楼 发表于: 2018-06-13
回 hpplel 的帖子
hpplel:谢谢!
如果读取100M,readall能一次读取吗? (2018-06-13 16:43) 

担心读取不过来,可以用内存映射。
QByteArray 基本没什么问题。
有时候为了工作直接获得答案,而我却失去了思考的乐趣!


飘啊飘,何时能安居!
离线hpplel

只看该作者 4楼 发表于: 2018-06-13
回 dbzhang800 的帖子
dbzhang800:系统API/C/C++/Qt,
在任何Qt程序中,上述4个层次的文件操作函数或类,你都可以自由选择
而且不管哪一个,都不存在你所说的会自动加入魔数的问题。(当然,如果你不是文件类操作,而是QDataStream一类的序列化操作,那就完全是另一个问题了) (2018-06-08 11:18) 

谢谢版主!
之前用c多,
对c里的nsigned char和char用的顺手。
对应到qt里,我就晕乎了
nsigned char对应的应该是qbytearray吧?
char对应其他的?
离线hpplel

只看该作者 3楼 发表于: 2018-06-13
回 uidab 的帖子
uidab:不知道你看得什么例子,qt的还是不错的。
不知道你的二进制文件是什么样的。
而且是有读出多少字节的。
 (2018-06-06 15:20) 

谢谢!
如果读取100M,readall能一次读取吗?
离线dbzhang800

只看该作者 2楼 发表于: 2018-06-08
系统API/C/C++/Qt,

在任何Qt程序中,上述4个层次的文件操作函数或类,你都可以自由选择

而且不管哪一个,都不存在你所说的会自动加入魔数的问题。(当然,如果你不是文件类操作,而是QDataStream一类的序列化操作,那就完全是另一个问题了)
在线uidab

只看该作者 1楼 发表于: 2018-06-06
不知道你看得什么例子,qt的还是不错的。
不知道你的二进制文件是什么样的。

而且是有读出多少字节的。
有时候为了工作直接获得答案,而我却失去了思考的乐趣!


飘啊飘,何时能安居!
快速回复
限100 字节
 
上一个 下一个