【发布时间】:2014-11-09 04:39:15
【问题描述】:
文件信息:前 4 个字节包含文件中的记录数 |接下来的 4 个字节包含第一条记录的长度。在第一次记录之后 4 个字节包含第二个记录的长度。整个文件是这样的。所以我必须读取输入文件并跳过前 4 个字节。之后我需要读取 4 个字节,这将为我提供即将到来的记录的长度,并以字符串形式写出记录并重复该过程。
我没有得到我应该得到的东西。例如: 对于 7F CB 00 00,我应该得到 32715(我不需要,需要跳过)。接下来的 4 个字节是 00 D3 00 00 00 我应该得到 211,但我没有得到。
任何帮助将不胜感激。
private void button1_Click(object sender, EventArgs e)
{
FileStream readStream;
readStream = new FileStream(singlefilebox.Text,FileMode.Open,FileAccess.Read);
BinaryReader readBinary = new BinaryReader(readStream);
byte inbyte;
inbyte = readBinary.ReadByte();
string outbyte;
while (readBinary.BaseStream.Position < readBinary.BaseStream.Length)
{
inbyte = readBinary.ReadByte();
outbyte = Convert.ToString(inbyte);
}
【问题讨论】:
-
代码的实际输出是什么?与预期结果进行比较有助于找出问题所在
-
字节顺序可能不会像你想象的那样解释:en.wikipedia.org/wiki/Endianness
-
20300021100127241241 for 7F CB 00 00 00 D3 00 00 7F F1 F1 F1 F5 F8 F4 F3 7F....
标签: c# byte filestream binaryreader