C#学习笔记---区分StringWriter(Reader)和StreamWriter(Reader),TextWriter(Reader),BinaryWriter(Reader)
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)的更多相关文章
- webpack学习笔记--区分环境
为什么需要区分环境 在开发网页的时候,一般都会有多套运行环境,例如: 在开发过程中方便开发调试的环境. 发布到线上给用户使用的运行环境. 这两套不同的环境虽然都是由同一套源代码编译而来,但是代码内容却 ...
- Go xmas2020 学习笔记 11、io.Reader
11-Homework #2. 11-Reader. Reader interface. NewReader func. Reader Struct. Len .Size,Read func. Pra ...
- CSS3与页面布局学习笔记(八)——浏览器兼容性问题与前端性能优化方案
一.浏览器兼容 1.1.概要 世界上没有任何一个浏览器是一样的,同样的代码在不一样的浏览器上运行就存在兼容性问题.不同浏览器其内核亦不尽相同,相同内核的版本不同,相同版本的内核浏览器品牌不一样,各种运 ...
- 《Java学习笔记(第8版)》学习指导
<Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...
- Java-Eclipse插件开发学习笔记
Eclipse插件 学习笔记 作者 Rick- Bao 开始日期 2014年8月26日 结束日期 2014年8月27日 一 . CVS(current version system) 版本控制 ...
- .NET GC机制学习笔记
学习笔记内容来自网络资料摘录http://www.cnblogs.com/springyangwc/archive/2011/06/13/2080149.html 1.GC介绍 Garbage Col ...
- Android(java)学习笔记167:Java中操作文件的类介绍(File + IO流)
1.File类:对硬盘上的文件和目录进行操作的类. File类是文件和目录路径名抽象表现形式 构造函数: 1) File(String pathname) Creat ...
- Java学习笔记4
Java学习笔记4 1. JDK.JRE和JVM分别是什么,区别是什么? 答: ①.JDK 是整个Java的核心,包括了Java运行环境.Java工具和Java基础类库. ②.JRE(Java Run ...
- SpringMVC学习笔记之二(SpringMVC高级参数绑定)
一.高级参数绑定 1.1 绑定数组 需求:在商品列表页面选中多个商品,然后删除. 需求分析:功能要求商品列表页面中的每个商品前有一个checkbok,选中多个商品后点击删除按钮把商品id传递给Cont ...
随机推荐
- NOIP模拟赛 篮球比赛2
篮球比赛2(basketball2.*) 由于Czhou举行了众多noip模拟赛,也导致放学后篮球比赛次数急剧增加.神牛们身体素质突飞猛进,并且球技不断精进.这引起了体育老师彩哥的注意,为了给校篮球队 ...
- RSA非对称加密算法实现过程
RSA非对称加密算法实现过程 非对称加密算法有很多,RSA算法就是其中比较出名的算法之一,下面是具体实现过程 <?php /** */ class Rsa { /** * private key ...
- Mac远程访问Ubuntu
MacOS和Ubuntu连接到同一个网络使用ping命令可以通信即可.SSH使用SSH可以很方便的在MacOS上访问Ubuntu,不过只能用命令行操作,相当于连接了Ubuntu的终端. 1. Ubun ...
- 收集的有关mdk 3的使用方法
收集来自网络上的有关mdk3的一些使用方法以及技巧(持续更新) b beacon泛洪攻击 -f 指定wifi名称的文件夹 -n 加上wifi名称 -w Fake WEP encrypted sta ...
- apply(), applymap(), map()
Pandas 中map, applymap and apply的区别 https://blog.csdn.net/u010814042/article/details/76401133/ Panda ...
- i2c_drivers个人分析
\arch\arm\mach-mx6\board-mx6q_sabresd.c static struct i2c_board_info i2c_board_info_rtc[] __initdata ...
- 2019年北航OO第四次博客总结<完结撒花>
一.UML单元架构设计 1. 类图解析器架构设计 1.1 UML类图 这次作业的目标是要解析一个UML类图,首先为了解耦,我新建了一个类UmTree进行解析工作,而Interaction类仅仅作为实现 ...
- [转] Vuex入门(2)—— state,mapState,...mapState对象展开符详解
1.state state是什么? 定义:state(vuex) ≍ data (vue) vuex的state和vue的data有很多相似之处,都是用于存储一些数据,或者说状态值.这些值都将被挂载 ...
- luogu1441 砝码称重
搜索+背包就是了 #include <iostream> #include <cstring> #include <cstdio> using namespace ...
- mysql update连表
UPDATE price_air_item t1 LEFT JOIN order_item t2 ON t1.ORDER_ITEM_ID = t2.ORDER_ITEM_ID SET t1.BUYER ...