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,这二者中,某些字符只能在编码器收到相邻的一个或多个字符后才能进行编码。

posted @ 2008-03-18 10:26  supers  阅读(292)  评论(0)    收藏  举报