Im getting error Unable to read beyond the end of the stream why?

前端 未结 3 1931
再見小時候
再見小時候 2021-01-18 14:13

The testing.res file is 240MB size. I want to read it. But im getting the error on this line:

int v = br.ReadInt32();

EndOfStreamException

3条回答
  •  醉酒成梦
    2021-01-18 14:31

    You should use a more reliable way of figuring out when you are at the end of the stream, rather than rolling your own counter with sizeof(int). Your method may not be precise enough, and the fact that you are using an unsafe code for that is also not too good.

    One way probe if you are at the end of the stream or not is to use the PeekChar method:

    while (br.PeekChar() != -1)
    {
        // 3.
        // Read integer.
        int v = br.ReadInt32();
        textBox1.Text = v.ToString();
    }
    

    A more common solution is to write the number of ints that you are saving in a binary file in front of the actual list of integers. This way you know when to stop without relying on the length or the position of the stream.

提交回复
热议问题