StreamWriter类小记

StreamWriter类
   实现一个TextWriter,使其以一种特定编码向流中写入字符
原型:
  [SerializableAttribute]
    [ComVisibleAttribute(true)]
    public class StreamWriter : TextWriter
默认使用UTF8Encoding的实例,不是线程安全的
看一下构造函数原型:
  StreamWriter(Stream) 用其所长UTF-8编码及缓冲区大小,为指定的流初始化StreamWriter类的一个新实例.
  StreamWriter(String)   使用默认编码和缓冲区大小,为指定路径上的指定文件初始化StreamWriter类的新实例.
    StreamWriter(Stream,Encoding) 使用指定的编码及默认缓冲区大小,为指定的流初始化类的新实例
    StreamWriter(String,Boolean) 使用默认编码和缓冲区大小,为指定路径上的指定文件初始化 StreamWriter 类的新实例。如果该文件存在,则可以将其覆盖或向其追加。如果该文件不存在,则此构造函数将创建一个新文件。
    StreamWriter(Stream,Encoding,Int32) 用指定的编码及缓冲区大小,为指定的流初始化 StreamWriter 类的新实例。
    StreamWriter(String,Boolean,Encoding) 使用指定编码和默认缓冲区大小,为指定路径上的指定文件初始化 StreamWriter 类的新实例。如果该文件存在,则可以将其覆盖或向其追加。如果该文件不存在,则此构造函数将创建一个新文件。
    StreamWriter(String,Boolean,Encoding,Int32) 使用指定编码和缓冲区大小,为指定路径上的指定文件初始化 StreamWriter 类的新实例。如果该文件存在,则可以将其覆盖或向其追加。如果该文件不存在,则此构造函数将创建一个新文件。

例子:
    public void CreateTextFile(string fileName,string textToAdd)
      {
            string logFile = DateTime.Now.ToShortDateString().Replace(@"/",@"-").Replace(@"\",@"-") +".log";
            FileStream fs = new FileStream(fileName,FileMode.CreateNew,FileAccess.Write,FileShare.None);

            StreamWriter swFromFile = new StreamWriter(logFile);
            swFromFile.Write(textToAdd);
            swFromFile.Flush();
            swFromFile.Close();

            StreamWriter swFromFileStream = new StreamWriter(fs);
            swFromFileStream.Write(textToAdd);
            swFromFileStream.Flush();
            swFromFileStream.Close();

            StreamWriter swFromFileStreamDefaultEnc =
                new System.IO.StreamWriter(fs,
                System.Text.Encoding.Default);
            swFromFileStreamDefaultEnc.Write(textToAdd);
            swFromFileStreamDefaultEnc.Flush();
            swFromFileStreamDefaultEnc.Close();

            StreamWriter swFromFileTrue =
                new StreamWriter(fileName,true);
            swFromFileTrue.Write(textToAdd);
            swFromFileTrue.Flush();
            swFromFileTrue.Close();
           
            StreamWriter swFromFileTrueUTF8Buffer =
                new StreamWriter(fileName,
                true, System.Text.Encoding.UTF8,512);
            swFromFileTrueUTF8Buffer.Write(textToAdd);
            swFromFileTrueUTF8Buffer.Flush();
            swFromFileTrueUTF8Buffer.Close();

            StreamWriter swFromFileTrueUTF8 =
                new StreamWriter(fileName, true,
                System.Text.Encoding.UTF8);
            swFromFileTrueUTF8.Write(textToAdd);
            swFromFileTrueUTF8.Flush();
            swFromFileTrueUTF8.Close();

            StreamWriter swFromFileStreamUTF8Buffer =
                new StreamWriter(fs, System.Text.Encoding.UTF8, 512);
            swFromFileStreamUTF8Buffer.Write(textToAdd);
            swFromFileStreamUTF8Buffer.Flush();
            swFromFileStreamUTF8Buffer.Close();
      }
字段:
   CoreNewLine:存储用于此TextWriter的换行符
       protected char[] CoreNewLine
      Null:不带任何可写入但无法从中读取的后备存储区
    public static readonly StreamWriter Null
   if(sw.Equals(StreamWriter.Null))
     {
          sw.WriteLine("The store can be written to, but no read from");
      }

常用方法:
 Write() ,WriteLine()

posted @ 2010-01-27 08:59  smodi  阅读(10896)  评论(0编辑  收藏  举报