读书人

C#文件读写操作的有关问题

发布时间: 2012-05-06 16:15:43 作者: rapoo

C#文件读写操作的问题
FileStream fs = new FileStream(path, FileMode.Append, FileAccess.Write);
for(;;)
{
StreamWriter sw = new StreamWriter(fs);
//开始写入
sw.Write(strLog);
//清空缓冲区
sw.Flush();
关闭流
sw.Close();
}

调用sw.Close()后,fs的写权限就变成false了,再次new StreamWriter sw 会出错,怎么解决?

[解决办法]

lz可以试一下

把 fs = new FileStream(path, FileMode.Append, FileAccess.Write);

放到 for内~
[解决办法]
或者把 Close放到for外
[解决办法]
看楼主代码,感觉sw创建和关闭都应该放在for外,for内只写
[解决办法]
把sw.close()放在for循环的外面
[解决办法]
你也可以用Using 试一下,不用sw.Close();
[解决办法]
#region 日志相关
/// <summary>
/// 写日志文件
/// </summary>
/// <param name="log"></param>
public static void WriteLog(string log)
{
string filename = GetAppPath() + "Log" + DateTime.Today.ToString("yyyyMMdd") + ".log";
WriteLog(log, filename);
}

/// <summary>
/// 写日志文件
/// </summary>
/// <param name="log">日志字符串</param>
/// <param name="filename">日志文件名(包含完整路径)</param>
public static void WriteLog(string log, string filename)
{
try
{
StreamWriter sw = File.AppendText(filename);
sw.WriteLine(log);
sw.Flush();
sw.Close();
}
catch
{}
}
#endregion

读书人网 >C#

热点推荐