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 ...
随机推荐
- tensorflow目标检测API之建立自己的数据集
1 收集数据 为了方便,我找了11张月儿的照片做数据集,如图1,当然这在实际应用过程中是远远不够的 2 labelImg软件的安装 使用labelImg软件(下载地址:https://github.c ...
- vue使用原生js实现滚动页面跟踪导航高亮
需要使用vue做一个专题页面. 滚动页面指定区域导航高亮. BetterScroll:可能是目前最好用的移动端滚动插件 如何自定义CSS滚动条的样式? 监听滚动页面事件,对比当前页面的位置与元素的位置 ...
- Aizu - 1386 Starting a Scenic Railroad Service (思维乱搞)
给你n个区间,求: 1:最多有多少区间与同一个区间相交. 2:相交部分的最大区间数目. Sample Input 1 4 1 3 1 3 3 6 3 6 Sample Output 1 2 2 Sam ...
- debian使用sudo
debian默认没有sudo ,在命令前无法使用sudo #切换到根用户$ su 输入根用户密码 # apt-get install sudo # nano /etc/sudoers 文件的 User ...
- 深入Python底层,谈谈内存管理机制
说到内存管理,就先说一下垃圾回收吧.垃圾回收是Python,Java等语言管理内存的一种方式,说的直白些,就是清除无用的垃圾对象.C语言及C++中,需要通过malloc来进行内存的申请,通过free而 ...
- luogu1742 最小圆覆盖
狗题卡我精度--sol #include <algorithm> #include <iostream> #include <cstdlib> #include & ...
- php isset()与empty()详解
bool isset(mixed var);[;mixed var[,...]] 这个函数需要一个变量名称作为参数,如果这个变量存在,则返回true,否则返回false. 也可以传递一个由逗号间隔的变 ...
- gdb调试手册 一 gdb概述
一 gdb概述 gdb调试器的目的是让你了解其他的程序在执行的时候发生了什么或者其他程序崩溃时正在做什么 gdb主要能够在运行中做四类事情(包括这些事情中的一些附加的事情)来帮助你获取bugs a 运 ...
- [python学习篇] [os模块] [2]删除文件夹
def deleteDirectory(self,current_path): if not os.path.exists(current_path): self.logger.info(curren ...
- dp好题 玲珑杯 Expected value of the expression
152 - Expected value of the expression Time Limit:2s Memory Limit:128MByte Submissions:135Solved:65 ...