在写一个游戏编辑工具,遇到一个问题。
通过BinaryReader读入流,在使用ToInt32转换操作时,读取其中一个字节时会变成读取到8个字节,实际只有4个字节,导致读取出来的数据不对,请问如何修正这个问题呢?
文字表达有限,可能不是很明确,上代码吧。
FileStream file = new FileStream("0001.dat", FileMode.Open, FileAccess.Read);
BinaryReader br = new BinaryReader((Stream)file);
byte[] bytes = new byte[file.Length];
br.Read(bytes, 0, (int)file.Length);
file.Close();
br.Close();
questid.Text = BitConverter.ToInt32(bytes, 0).ToString();
questnpc.Text = BitConverter.ToInt32(bytes, 2).ToString();
textBox3.Text = BitConverter.ToInt32(bytes, 4).ToString();
textBox4.Text = BitConverter.ToInt32(bytes, 80).ToString();
textBox5.Text = BitConverter.ToInt32(bytes, 84).ToString();
textBox6.Text = BitConverter.ToInt32(bytes, 88).ToString();
0001.dat文件内容如下
00000000h: 02 00 00 00 FF 03 00 00 00 04 00 00 FF FF FF FF ; ....?.......????
00000010h: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ; ????????????????
00000020h: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ; ????????????????
00000030h: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ; ????????????????
00000040h: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ; ????????????????
00000050h: 96 00 00 00 E8 03 00 00 58 02 00 00 00 00 00 00 ; ?..?..X.......
00000060h: 04 00 00 00 01 00 00 00 68 C8 00 00 06 00 00 00 ; ........h?.....
00000070h: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ; ????????????????
00000080h: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ; ????????????????
00000090h: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ; ????????????????
000000a0h: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ; ????????????????
000000b0h: FF FF FF FF FF FF FF FF FF FF FF FF 12 00 AE F5 ; ????????????..?
000000c0h: B2 F6 B9 EE AA 76 C0 F8 B0 D3 BF D5 A5 A7 B6 F0 ; 馋诡獀励坝空ェ娥
000000d0h: 00 00 FF FF FF FF FF FF FF FF FF FE FF FF FF FF ; ..?????????????
000000e0h: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ; ????????????????
000000f0h: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ; ????????????????
00000100h: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ; ????????????????
00000110h: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ; ????????????????
00000120h: FF FF FF FF FF FF FF FF FF FF FF FF FF FF 00 00 ; ??????????????..
00000130h: 00 00 FF FF FF FF FF FF FF FF FF FE FF FF FF FF ; ..?????????????
00000140h: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ; ????????????????
00000150h: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ; ????????????????
00000160h: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ; ????????????????
00000170h: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ; ????????????????
00000180h: FF FF FF FF FF FF FF FF FF FF FF FF FF FF 00 00 ; ??????????????..