二进制文件格式:为什么系统读取了所有4个字节,并将值正确显示为25736483
本文关键字:25736483 显示 字节 4个 为什么 格式 系统 读取 二进制文件 | 更新日期: 2023-09-27 17:59:07
使用c#程序BinaryWriter类,我正在文件中写入2个单词
bw.write(i);
bw.write(s);
其中CCD_ 1是具有值CCD_。并且CCD_ 3是具有值CCD_
我正在再次读取文件并将值输出到textbox.text
iN = br.ReadInt32();
newS = br.ReadString();
this.textBox1.Text = i.ToString() + newS;
整数将存储在4个字节中,字符串将存储在另外11个字节中。当我们阅读ReadInt32时,系统如何知道它必须生成4个字节,而不仅仅是1个字节。为什么系统读取了所有4个字节,并将值正确显示为25736483
?
您告诉它用ReadInt32
读取Int32,而Int32
是4个字节(32位)。所以你说"读取一个四字节(32位)整数",它完全按照你的要求去做
当你使用bw.write(i);
时也发生了同样的事情——正如你所说,i
0是一个整数,你告诉它写一个整数。由于在您的平台上,默认整数是4字节(32位),因此它写了4个字节。
整数在您的平台上是32位的。因此,当您将一个整数传递给write
时,会得到一个写4个字节的重载。ReadInt32
函数知道读取四个字节,因为32位就是四个字节。
Write
方法为它知道如何编写的每个变量类型都有一个重载。这个重载确切地知道在流中存储值需要多少字节。你可以在这里看到每一个特定的过载。
当您读取数据时,会调用的正确版本。读取要读取的数据类型,该数据类型也经过专门编码,以了解该类型中有多少字节。