• 【原创】C#认识/理解/运用 StreamReader,StreamWriter,StringReader,StreamWriter


    题记

    StreamReader,StreamWriter,StringReader,StreamWriter 每次看到这几个词的时候,就会混淆(理解不够深刻),在使用过程中也经常犯浑,为了能更好的理解,写下此文章。

    正文

    概念

    首先,从字面可以看出,StreamReader,StringReader是用来读操作,StreamWriter,StreamWriter是用来写操作。

    接下来看这几个类在类库中的层次

    上图中,StreamReader,StringReader都派生自TextReader类(TextReader:表示可读取连续字符序列的读取器。抽象基类)

    StreamReader从流中读取字符

    StringReader从字符串读取字符

    上图中,StreamWriter,StreamWriter派生自TextWriter类(TextWriter:表示可以编写一个有序字符序列的编写器。该类为抽象类。)

    StreamWriter将字符写入流

    StreamWriter将字符写入字符串

    代码

    reader操作

            private static void StringRead()
            {
                string in_str ="流操作,字符操作,io操作";
                string read_str, aParagraph = null;
                StringReader sr = new StringReader(in_str);
                while (true)
                {
                    read_str = sr.ReadLine();
                    if (read_str != null)
                    {
                        aParagraph = aParagraph + in_str + " ";
                    }
                    else
                    {
                        aParagraph = aParagraph + "\n";
                        break;
                    }
                }
            }

            private static void StreamRead()
            {
                Stream rStream = new FileStream(@"E:/20120214.txt", FileMode.Open);
                StreamReader sr = new StreamReader(rStream, Encoding.UTF8);
                //从流中读取字符
                string result = sr.ReadToEnd();
                //释放资源
                sr.Close();
                rStream.Close();
            }

    writer操作

            private static void StreamWriter()
            {
                string in_str = DateTime.Now.ToString("MM-dd HH:mm:ss:fff");
                //第二个参数  是否追加
                StreamWriter sw = new StreamWriter(@"E:/20120214.txt",true,Encoding.Default);
                sw.Write(in_str);
                sw.Flush();
                sw.Close();
            }
            
            private static void StringWriter()
            {           
                StringWriter sw = new StringWriter();
                sw.Write("文字,学习,文字,c#");
                sw.Close();
            }

  • 相关阅读:
    git使用总结
    将本地项目上传到git
    ASP.NET MVC中注册Global.asax的Application_Error事件处理全局异常
    SQLQueryStress
    SQL Server 触发器
    HTTP 错误 404.3
    HTTP 错误 500.19 Internal Server Error的解决方法
    windows server 2012 配置多用户ftp服务器配置注意点
    自定义Remote验证(对博客园文章“Asp.net MVC验证哪些事(3)-- Remote验证及其改进(附源码)”自定义验证的改进)
    [ASP.net教程]IIS服务器 远程发布(Web Deploy)配置
  • 原文地址:https://www.cnblogs.com/zhxhdean/p/2359605.html
Copyright © 2020-2023  润新知