我正在做一些测试,并且交换一个Stream,它通常来自我创建的流的Web请求.
我像这样创建流:
MemoryStream responseDataStream = new MemoryStream();
using (StreamWriter sw = new StreamWriter(responseDataStream))
{
sw.Write(responseData);
sw.Flush();
sw.Close();
}
Run Code Online (Sandbox Code Playgroud)
但是,当我的代码尝试使用它时:
StreamReader reader = new StreamReader(myStream);
我收到了错误 Stream was not readable.
我想准备我的流,以便它可以被消费.我怎样才能做到这一点?
默认情况下,StreamWriter获取您在构造函数中传递的流的所有权.当流编写器关闭时,它也将关闭底层流.您需要使用构造函数的不同重载,例如new StreamWriter(responseDataStream, Encoding.UTF8, true).
其次,流仍处于最后一次写入的位置.你需要回放它:
responseDataStream.Position = 0;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
417 次 |
| 最近记录: |