我正在编写一个小应用程序,我希望将操作结果写入文件.
基本上我想要做的是打开文件流(我正在考虑FileStream,但我愿意接受建议),将数据写入文件,然后在以后关闭它.
所以我有一个名为ReportFile的类,方法有:
.Create( string path )
.WriteInfo( string a, string b, string c ) ; //Or something like this...
//Then sometime in the future
.Close()
Run Code Online (Sandbox Code Playgroud)
因此,使用ReportFile类的类将创建一个实例,WriteInfo(..)多次调用,直到完成它需要做的任何事情,然后Close()在将来的某个时刻调用.
现在我知道我需要在ReportFile类上实现一个Dispose模式,以确保如果有任何问题,那么文件的句柄会得到适当的处理.
但是到目前为止我还没有找到任何关于interweb的东西,显示保持文件打开的好方法,然后检查是否需要关闭,大多数示例只是打开文件进行写入,然后关闭它 - 所有都在一个using{}结构中.
在ReportFile类中,我希望能够检查FileStream实例是否未关闭,以便我可以关闭它并释放资源.
有人知道参考或任何其他建议的良好链接?
(哦,我应该提到我不做C#全职,这只是一个爱好的事情,所以如果这是一个愚蠢的问题,我的道歉;-)
您必须保持文件打开状态是否有特殊原因?
在这种情况下,我只需每次使用 FileMode.Append 打开文件(或将append=true 传递给 StreamWriter ctor),然后使用 using 再次关闭它。例如:
void WriteInfo(string text)
{
// Second parameter to StreamWriter ctor is append = true
using(StreamWriter sw = new StreamWriter(logFilePath, true))
{
sw.WriteLine(text);
}
}
Run Code Online (Sandbox Code Playgroud)
采用这种方法,您实际上不需要 Create() 或 Close() 方法。如果文件不存在,append=true 将创建该文件。
| 归档时间: |
|
| 查看次数: |
1365 次 |
| 最近记录: |