是否好奇在二进制文件流读取期间是否可以跳过字节?我试图读取32个字节,然后一直跳过接下来的6个字节,并一直重复到文件末尾。文件大小约为10mb。这是我现在遇到的错误超出范围的相关代码。
byte[] tempBuff = new byte[FlashSize];
int numBytesToRead = FlashSize;
int bytesRead = 0;
while(bytesRead <= numBytesToRead - 38{
ecmStream.Read(tempBuff, 0, 32);
ecmStream.Seek(6, SeekOrigin.Current);
}
编辑:
感谢Henk,我也意识到我需要在每10000次读取后跳过14个字节。在这一点上,使用流进行动态解析仍然是一个不错的选择吗?
答案 0 :(得分:2)
int numBytesToRead = FlashSize;
byte[] tempBuff = new byte[numBytesToRead];
int bytesRead = 0;
while(bytesRead <= numBytesToRead - 38)
{
bytesRead += ecmStream.Read(tempBuff, bytesRead, 32);
ecmStream.Seek(6, SeekOrigin.Current);
}
答案 1 :(得分:1)
您的初读错误
ecmStream.Read(tempBuff, 32, FlashSize);
应该是
ecmStream.Read(tempBuff, 0, FlashSize);
第一个int表示要读入https://docs.microsoft.com/en-us/dotnet/api/system.io.stream.read?view=netframework-4.7.2
的tempBuff中的哪个偏移量