1.TextWriter(Reader)分别是对连续字符系列处理的编写器(读写器),来自System.IO

2.StringWriter(Reader)继承TextWriter(Reader),它主要是对字符串进行处理的类,样例如下:

TextWriter stringwriter = new StringWriter();
            stringwriter.Write("你好,通过StringWriter写入,StringWriter继承TextWriter");
            TextReader stringreader = new StringReader(stringwriter.ToString());
            Console.WriteLine("从{0}——{1}", stringreader.GetType().Name, stringreader.ReadToEnd());
            Console.WriteLine();

3.StreamWriter(Reader)也继承TextWriter(Reader),它主要是以流的形式处理数据,可以是记忆流,文件流,系列端口流以及媒体视频流等。例子:

using (TextWriter streamwriter = new StreamWriter("mytext.txt"))
            {
                streamwriter.Write("你好,通过StreamWriter写入,StreamWriter继承TextWriter");
            }
            TextReader streamreader = new StreamReader("mytext.txt");
            Console.WriteLine("从{0}——{1}", streamreader.GetType().Name, streamreader.ReadToEnd());
            Console.ReadLine();

4.BinaryWriter(Reader)不继承TextWriter(Reader),以二进制形式讲基元类型写入(读取),并支持特定的编码,其有广泛的支持形式,因为它以二进制方式读取写入。例子:

//BinaryWriter(Reader)
            const string filename = "test.txt";
            if (File.Exists(filename))
            {
                Console.WriteLine("{0}文件已存在!", filename);
            }
            FileStream fs = new FileStream(filename, FileMode.Create);
            BinaryWriter bw = new BinaryWriter(fs);
            string str = Environment.CurrentDirectory + @"QQ.EXE.lnk";
            bw.Write(str);
            bw.Close();
            fs.Close();
            //现在开始读取
            fs = new FileStream(filename, FileMode.Open, FileAccess.Read);
            BinaryReader br = new BinaryReader(fs);
            long size = br.BaseStream.Length;
            byte[] bytesize = new byte[size];
            bytesize = br.ReadBytes((int)size);
            Console.WriteLine(bytesize.ToString());
            br.Close();
            fs.Close();
            Console.ReadLine();

下面再示一例BinaryWriter写入XML信息例子:

const string filename = "XmlWriter1.xml";
            FileStream fs = new FileStream(filename, FileMode.Create);
            BinaryWriter bw = new BinaryWriter(fs);
            XmlElement ee = xdoc.DocumentElement;
            if (ee != null)
            {
                bw.Write(ee.OuterXml);
            }
            else
            {
                Console.WriteLine("获取对象失败!");
            }
            bw.Close();
            fs.Close();

C#学习笔记---区分StringWriter(Reader)和StreamWriter(Reader),TextWriter(Reader),BinaryWriter(Reader)的更多相关文章

  1. webpack学习笔记--区分环境

    为什么需要区分环境 在开发网页的时候,一般都会有多套运行环境,例如: 在开发过程中方便开发调试的环境. 发布到线上给用户使用的运行环境. 这两套不同的环境虽然都是由同一套源代码编译而来,但是代码内容却 ...

  2. Go xmas2020 学习笔记 11、io.Reader

    11-Homework #2. 11-Reader. Reader interface. NewReader func. Reader Struct. Len .Size,Read func. Pra ...

  3. CSS3与页面布局学习笔记(八)——浏览器兼容性问题与前端性能优化方案

    一.浏览器兼容 1.1.概要 世界上没有任何一个浏览器是一样的,同样的代码在不一样的浏览器上运行就存在兼容性问题.不同浏览器其内核亦不尽相同,相同内核的版本不同,相同版本的内核浏览器品牌不一样,各种运 ...

  4. 《Java学习笔记(第8版)》学习指导

    <Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...

  5. Java-Eclipse插件开发学习笔记

    Eclipse插件 学习笔记 作者   Rick- Bao 开始日期  2014年8月26日 结束日期  2014年8月27日 一 . CVS(current version system) 版本控制 ...

  6. .NET GC机制学习笔记

    学习笔记内容来自网络资料摘录http://www.cnblogs.com/springyangwc/archive/2011/06/13/2080149.html 1.GC介绍 Garbage Col ...

  7. Android(java)学习笔记167:Java中操作文件的类介绍(File + IO流)

    1.File类:对硬盘上的文件和目录进行操作的类.    File类是文件和目录路径名抽象表现形式  构造函数:        1) File(String pathname)       Creat ...

  8. Java学习笔记4

    Java学习笔记4 1. JDK.JRE和JVM分别是什么,区别是什么? 答: ①.JDK 是整个Java的核心,包括了Java运行环境.Java工具和Java基础类库. ②.JRE(Java Run ...

  9. SpringMVC学习笔记之二(SpringMVC高级参数绑定)

    一.高级参数绑定 1.1 绑定数组 需求:在商品列表页面选中多个商品,然后删除. 需求分析:功能要求商品列表页面中的每个商品前有一个checkbok,选中多个商品后点击删除按钮把商品id传递给Cont ...

随机推荐

  1. 【莫队】bzoj4542: [Hnoi2016]大数

    挺有意思的,可以仔细体味一下的题:看白了就是莫队板子. Description 小 B 有一个很大的数 S,长度达到了 N 位:这个数可以看成是一个串,它可能有前导 0,例如00009312345.小 ...

  2. 【模板】无旋Treap(FHQ)

    如题,这是一个模板... #include <algorithm> #include <iostream> #include <cstring> #include ...

  3. Unity基础-脚本的基本使用

    脚本的基本使用 定义与挂载monobehaviour 1.新建一个场景 2.新建脚本 using System.Collections; using System.Collections.Generi ...

  4. GIMP如何制作一只大佬猫头像

    新建文件File -> 设置宽度为24px,高度5px:高级选项中将背景图片设置为无色 使用铅笔,前景色设为黑色,画出眼镜的模样,画出反光效果:将前景色设为灰色 放大图片,右击空白区域-> ...

  5. 树莓派编译ncnn

    1.从github上下载ncnn git clone --recursive https://github.com/Tencent/ncnn 2.在ncnn根目录下创建build目录,安装cmake编 ...

  6. debian右键添加在终端中打开

    sudo apt-get install nautilus-open-terminal -y 注销,重启

  7. HDU 4990 Reading comprehension 矩阵快速幂

    题意: 给出一个序列, \(f_n=\left\{\begin{matrix} 2f_{n-1}+1, n \, mod \, 2=1\\ 2f_{n-1}, n \, mod \, 2=0 \end ...

  8. Python之多线程与多进程(一)

    多线程 多线程是程序在同样的上下文中同时运行多条线程的能力.这些线程共享同一个进程的资源,可以在并发模式(单核处理器)或并行模式(多核处理器)下执行多个任务 多线程有以下几个优点: 持续响应:在单线程 ...

  9. Leetcode34--->Search for a Range(在排序数组中找出给定值出现的范围)

    题目:给定一个排序数组,找出给定的target值出现的范围:算法复杂度要求在O(logn);如果没有找到,则返回[-1, -1]; 举例: For example,Given [5, 7, 7, 8, ...

  10. Leetcode 419.甲板上的战舰

    甲板上的战舰 给定一个二维的甲板, 请计算其中有多少艘战舰. 战舰用 'X'表示,空位用 '.'表示. 你需要遵守以下规则: 给你一个有效的甲板,仅由战舰或者空位组成. 战舰只能水平或者垂直放置.换句 ...