如果我有一个类文件流成员,那么:
public class FooBar
{
private StreamReader reader;
private StreamWriter writer;
public FooBar(string readerFilePath, string writerFilePath)
{
reader = new StreamReader(readerFilePath);
writer = new StreamWriter(writerFilePath);
}
...
}
然后如何关闭这些流?
似乎它们在课堂销毁期间默认关闭,但后来我必须使用听起来不错的writer.Flush()
。
答案 0 :(得分:0)
使用块
using(reader = new StreamReader(readerFilePath))
{
//your code
}
从以下链接: 提供方便的语法,确保正确使用IDisposable对象。
来自MSDN:
C#,通过.NET Framework公共语言运行库(CLR), 自动释放用于存储no的对象的内存 需要更长时间记忆的释放是不确定的;记忆是 CLR决定执行垃圾收集时释放。 但是,通常最好释放有限的资源,例如文件 尽快处理和网络连接。
using语句允许程序员指定对象的时间 使用资源应该释放它们。提供给使用的对象 语句必须实现IDisposable接口。这个界面 提供Dispose方法,该方法应该释放对象 资源。换句话说,using语句告诉.NET发布 一旦不再需要,就在using块中指定的对象。
https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/using-statement