C#写文本操作
这是一个写日志的方法:
public static void writeLog(string message)
{
try
{
StreamWriter writer=null;
string filePath="log.txt";
if (File.Exists(filePath))
{
writer=File.AppendText(filePath);
}
else
{
writer=File.CreateText(filePath);
}
writer.WriteLine("["+DateTime.Now.ToString()+"]:"+message);
writer.Close();
}
catch (Exception e)
{
//把错误日志写到另一个文本文件中
writeError(e.Message);
}
}
需要补充的一点要注意:这个writer.Close();是绝对不能省的,不然写操作将会失败,看看bill是怎么解释的:
Close 的此实现调用传递 true 值的 Dispose 方法。
必须调用 Close 以确保所有数据正确写出到基础流中。调用 Close 后,在 StreamWriter 上进行的任何操作均可能引发异常。
除非显式地调用 Flush 或 Close,否则,刷新流时不会刷新其基础编码器。将 AutoFlush 设置为 true 意味着将数据从缓冲区刷新到流中,但不刷新编码器状态。这将允许编码器保持其状态(不完全字符),以便它可以正确地对下一个字符块进行编码。此方案影响 UTF8 和 UTF7,这二者中,某些字符只能在编码器收到相邻的一个或多个字符后才能进行编码。


浙公网安备 33010602011771号