我使用BinaryReader读取文件,我遇到了无法解决的问题。 (C#)
我需要读4个字节。当我用我的十六进制查看器查看这些字节时,它是00 00 00 13
。
所以我试过Int32 fLength = dbr.ReadInt32();
结果是318767104而不是19(我的预期和需要)。当我使用byte[] fLength = dbr.ReadBytes(4);
时,我可以看到我已经读取了正确的字节[0] [0] [0] [19]。
(我对下面的字节有同样的问题)
我如何读取这4个字节并得到19作为结果。
提前致谢!
Robertico
答案 0 :(得分:6)
这是一个little endian vs big endian问题:318767104 = 0x13000000
BinaryReader以小端格式存储此数据类型。
Jon Skeet的miscutil有一个允许您选择大端或小端的读者。
答案 1 :(得分:1)
用于读取4字节的二进制文件
byte[] byteArray = new byte[(int)(flstrm.Length)];
int a= System.BitConverter.ToInt32(byteArray, 0); //here 0 is the start index
lbl1.Text= a.toString();