3 回答
TA贡献1828条经验 获得超3个赞
如果使用的是.NET Framework 4.5或更高版本,则存在StreamWriter重载,使用该重载可以要求在关闭writer时要求基本流保持打开状态。
在4.5之前的.NET Framework的早期版本中,StreamWriter
假定它拥有流。选项:
不要处理
StreamWriter
; 冲洗一下即可。创建一个流包装器,该包装器将忽略对
Close
/的调用,Dispose
但将代理所有其他内容。如果您想从那里获取它,我可以在MiscUtil中实现。
TA贡献1871条经验 获得超8个赞
内存流具有ToArray属性,即使关闭流也可以使用它。To Array将流内容写入字节数组,而不管Position属性如何。您可以根据您写入的流创建一个新的流。
public System.IO.Stream CreateStream(string value)
{
var baseStream = new System.IO.MemoryStream();
var baseCopy = new System.IO.MemoryStream();
using (var writer = new System.IO.StreamWriter(baseStream, System.Text.Encoding.UTF8))
{
writer.Write(value);
writer.Flush();
baseStream.WriteTo(baseCopy);
}
var returnStream = new System.IO.MemoryStream( baseCopy.ToArray());
return returnStream;
}
- 3 回答
- 0 关注
- 581 浏览
添加回答
举报