我正在读取一个二进制文件,在等待某事发生时,我注意到程序没有做任何事情。
它似乎被卡在执行的某个点上。我在控制台中添加了一些打印语句,并且可以看到它到达了某个点……但似乎不想继续。这是前几行代码:
private BinaryReader inFile;
public void Parser(string path)
{
byte[] newBytes;
newBytes = File.ReadAllBytes(path);
using (MemoryStream ms = new MemoryStream())
{
ms.Write(newBytes, 0, newBytes.Length);
inFile = new BinaryReader(ms);
inFile.BaseStream.Seek(0, SeekOrigin.Begin);
}
}
public void ParseFile()
{
Console.WriteLine("parsing");
Console.WriteLine("get size to read"); // prints this out
int sizeToRead = inFile.ReadInt32();
Console.WriteLine("Size: {0}", sizeToRead); // doesn't print this out
Console.WriteLine("Done"); // end file processing
}
当我评论阅读时,它工作正常。我将 的内容转储inFile
到一个新文件中,它与原始文件相同,所以它应该是一个有效的流。
我不确定如何继续调试此问题。有人遇到过类似的问题吗?
编辑:对不起,我发布了一些不同的方法。这是整个方法