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()

浙公网安备 33010602011771号