标题:qt读取二进制文件,请大家帮忙!
作者:hpplel
日期:2018-06-06 15:03
内容:
以前用c语言较多。fopen(“rb”),读入到unsigned char中。
这个qt读二进制实在是郁闷啊!~看一些例子,一般是写入个int等等,然后按顺序读出来。
有没有读出多少字节的?如C中的fread类似的函数啊 ??
有个file.readAll();字符多了怎么办?再写入另一个二进制文件时,还加入了魔术数字,能不让他加吗?
有个readline(),好像是读char型的。
请指点!还是喜欢C里的读写文件,一般不用qt的!!~~
#1 [uidab 06-06 15:20]
不知道你看得什么例子,qt的还是不错的。
不知道你的二进制文件是什么样的。
而且是有读出多少字节的。
#2 [dbzhang800 06-08 11:18]
系统API/C/C++/Qt,
在任何Qt程序中,上述4个层次的文件操作函数或类,你都可以自由选择
而且不管哪一个,都不存在你所说的会自动加入魔数的问题。(当然,如果你不是文件类操作,而是QDataStream一类的序列化操作,那就完全是另一个问题了)
#3 回 uidab 的帖子 [hpplel 06-13 16:43]
uidab:不知道你看得什么例子,qt的还是不错的。
不知道你的二进制文件是什么样的。
而且是有读出多少字节的。
(2018-06-06 15:20)
谢谢!
如果读取100M,readall能一次读取吗?
#4 回 dbzhang800 的帖子 [hpplel 06-13 16:49]
dbzhang800:系统API/C/C++/Qt,
在任何Qt程序中,上述4个层次的文件操作函数或类,你都可以自由选择
而且不管哪一个,都不存在你所说的会自动加入魔数的问题。(当然,如果你不是文件类操作,而是QDataStream一类的序列化操作,那就完全是另一个问题了) (2018-06-08 11:18)
谢谢版主!
之前用c多,
对c里的nsigned char和char用的顺手。
对应到qt里,我就晕乎了
nsigned char对应的应该是qbytearray吧?
char对应其他的?
#5 回 hpplel 的帖子 [uidab 06-13 17:38]
hpplel:谢谢!
如果读取100M,readall能一次读取吗? (2018-06-13 16:43)
担心读取不过来,可以用内存映射。
QByteArray 基本没什么问题。