一个关于C# 中System.Stream的问题

2025-01-25 04:01:36
推荐回答(2个)
回答1:

必须知道要读入内容的大小,否则的话,只能像字符串一样,以一个特殊字符,如\0 ,做为读入的结束标记符。

回答2:

请看这句:
int n = s.Read(bytes, numBytesRead, 10);

Stream.Read返回值是读取了多少字节,如果返回值为0,说明到头了。

你出错不是因为Stream.Read出错了,而是你定义的bytes太小了,超出了访问范围。
如果你定义
byte[] bytes = new byte[s.Length + 10];
然后你再把count改成95之类的,你就会发现不会报错了

如果你不知道将要读取的流长度是多少,记得一定定义一个足够大的数组来存数据