您必须将 Stream 对象中的所有数据读入byte[]
缓冲区,然后MemoryStream
通过其构造函数将其传递给。最好更具体地了解您正在使用的流对象的类型。 Stream
非常通用,可能没有实现Length
属性,这在读入数据时相当有用。
这是给你的一些代码:
public MyClass(Stream inputStream) {
byte[] inputBuffer = new byte[inputStream.Length];
inputStream.Read(inputBuffer, 0, inputBuffer.Length);
_ms = new MemoryStream(inputBuffer);
}
如果Stream
对象未实现该Length
属性,则必须实现如下内容:
public MyClass(Stream inputStream) {
MemoryStream outputStream = new MemoryStream();
byte[] inputBuffer = new byte[65535];
int readAmount;
while((readAmount = inputStream.Read(inputBuffer, 0, inputBuffer.Length)) > 0)
outputStream.Write(inputBuffer, 0, readAmount);
_ms = outputStream;
}