对于 .Net MemoryStream 对象实例,是否需要在使用后显式关闭它?还是不需要关闭?哪些是最佳实践?
我正在使用 VSTS2008 + .Net 3.5 + C#。
对于 .Net MemoryStream 对象实例,是否需要在使用后显式关闭它?还是不需要关闭?哪些是最佳实践?
我正在使用 VSTS2008 + .Net 3.5 + C#。
更好的是使用Using
using (MemoryStream ms = /*get it using your favorite ctor*/)
{
// use it here
// and now flush and copy to a file stream (for example)
ws.Flush();
byte[] buffer = ws.ToArray();
using (Stream stream = new FileStream("fileName", FileMode.Create))
stream.Write(buffer, 0, buffer.Length);
}
一个小提醒——如果你打算在最后把它全部写到另一个流中,不要忘记Flush()
(并且不要把马桶座留下)。
我在 ms 周围使用了一个 StreamWriter,将文本数据写入内存,最后一口气将它们全部放入磁盘。(如果您愿意,我也可以将此处的示例更改为这种情况)
完成后应该关闭它。最佳实践是在 try-catch-finally 块的 finally 部分关闭流。你可以在这里获得更多信息:
http://msdn.microsoft.com/en-us/library/system.io.memorystream.aspx