C#学习笔记---区分StringWriter(Reader)和StreamWriter(Reader),TextWriter(Reader),BinaryWriter(Reader)

摘要:
TextReaderstringreader=newStringReader(stringwriter.ToString());Console.ReadLine();文件名);bw.写入(str);FileAccess.Read);

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)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇select默认下拉箭头改变、option样式清除[Java] 使用Java自动获取Excel的rows 和 columns下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

JavaSE之Long 详解 Long的方法简介以及用法

基本功能 Long 类在对象中包装了基本类型 long 的值 每个 Long 类型的对象都包含一个 long 类型的字段 static long MAX_VALUE long 8个字节最大值2^63-1十六进制:  0x8000000000000000L static long MIN_VALUE 最小值-2^63十六进制...

毕业设计 python opencv实现车牌识别 预处理

主要代码参考https://blog.csdn.net/wzh191920/article/details/79589506 GitHub:https://github.com/yinghualuowu 首先我们需要一个函数可以随时获取图片,无论在什么地方 filename = askopenfilename(title="选择识别图片", filetyp...

【转】递归函数时间复杂度分析

(1) 递归执行过程    例子:求N!。     这是一个简单的"累乘"问题,用递归算法也能解决。     n! = n * (n - 1)!   n > 1     0! = 1, 1! = 1      n = 0,1     因此,递归算法如下:    Java代码 fact(int n) {      if(n == 0 || n == 1...

XML中的二进制文件的编码与解码[原创]

(一)把二进制文件放到XML中 using System;using System.Data;using System.IO;using System.Text;using System.Xml;using System.Configuration;using System.Collections;using System.Web;using Syste...

Error Codes in Windows

The list below details the error codes displayed in the dialog boxes in Windows:Code Description _________________________________________________________________________ 1 Inco...

Linux文档的压缩和打包

摘自:http://www.apelearn.com/bbs/forum.php?mod=viewthread&tid=7660&extra=page%3D1%26filter%3Dtypeid%26typeid%3D36 1. gzip工具语法: gzip [-d#] filename 其中#为1-9的数字,默认压缩级别为6,只能压缩文件...