Stream
、StreamReader
、StreamWriter
等类实现了IDisposable
接口。这意味着,我们可以在这些类的对象上调用Dispose()
方法。他们还定义了一个名为Close()
的public
方法。现在这让我很困惑,一旦我处理完对象,我应该调用什么呢?如果我把两个都叫来呢?
我当前的代码是:
using (Stream responseStream = response.GetResponseStream())
{
using (StreamReader reader = new StreamReader(responseStream))
{
using (StreamWriter writer = new StreamWriter(filename))
{
int chunkSize = 1024;
while (!reader.EndOfStream)
{
char[] buffer = new char[chunkSize];
int count = reader.Read(buffer, 0, chunkSize);
if (count != 0)
{
writer.Write(buffer, 0, count);
}
}
writer.Close();
}
reader.Close();
}
}
如您所见,我编写了using()
构造,它会自动调用每个对象上的Dispose()
方法。但我也会调用Close()
方法。是对的吗?
请向我推荐使用流对象时的最佳实践。:-)
MSDN示例不使用using()
构造,调用Close()
方法:
是不是很好?
https://stackoverflow.com/questions/7524903
复制相似问题