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

  • 相关阅读:
    Django报错 No module named 'django.templates'
    Django 创建 hello world
    python(Django2.0) 安装
    create-react-app踩坑记
    Vue项目的痛点
    React 错误处理(componentDidCatch)
    Vue props双向绑定
    redux 中的 redux-thunk(中间件)
    webpack 搭建React(手动搭建)
    vue interceptors(拦截器)
  • 原文地址:https://www.cnblogs.com/chenqingwei/p/1657169.html
Copyright © 2020-2023  润新知