Avatar ·

如何从流(Stream)创建字节数组?完整指南

大家好!我是C#新手,正在开发一个从互联网下载文件的应用程序。我需要从NetworkStream或FileStream中读取所有数据到byte[]数组中。问题在于我事先不知道流的大小。尝试使用Length属性,但对于许多流它会抛出NotSupportedException异常。 这是我当前无法工作的代码:
// 尝试将流读入字节数组
byte[] buffer = new byte[stream.Length]; // 错误:'Stream' does not support seeking
stream.Read(buffer, 0, buffer.Length);
这个错误在我处理网络流(NetworkStream)或HTTP响应流时出现。我知道需要分块读取数据,但不知道如何正确组织循环。看到过关于MemoryStream的内容,但不确定如何使用。 请告诉我如何正确高效地将Stream转换为字节数组?最好提供适用于.NET 3.5的代码示例(我的项目是遗留项目)。