.Net MemoryStream关闭问题

Geo*_*ge2 1 .net c# memorystream visual-studio-2008

对于.Net MemoryStream对象实例,使用后是否需要显式关闭它?或者不需要关闭它?哪种方法最好?

我使用的是VSTS2008 + .Net 3.5 + C#.

Noa*_*Gal 9

更好的是使用 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);
}
Run Code Online (Sandbox Code Playgroud)

一点提醒 - 如果你计划在最后将它全部写入另一个流中,不要忘记Flush()(并且不要让马桶座圈向上).

我在ms周围使用StreamWriter,将文本数据写入内存,最后将其全部放在光盘上.(如果你愿意,我也可以在这里改变这个例子)