// Case 1
while(true)
{
int packetLength = GetPacketLength();
byte[] data = br.ReadBytes(packetLength);
if(data.length < packetLength)
{
Console.Write("end");
break;
}
}
// Case2
while(true)
{
int packetLength = GetPacketLength();
if(stream.Length - stream.Position < packetLength)
{
Console.Write("end");
break;
}
byte[] data = br.ReadBytes(packetLength);
}
我发现,当使用 BinaryReader 循环读取和处理文件数千次时,使用情况 1 比使用情况 2 快得多。 我已经像情况 1 一样使用它,但我很好奇为什么它更慢。这就是我写这篇文章的原因。