我是靠谱客的博主 简单日记本,最近开发中收集的这篇文章主要介绍Stream之Streamwriter&StreamReader,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Stream之Streamwriter&StreamReader

**

一.什么是Stream?

**

stream提供字节序列的一般视图,是一个抽象类,是所有流的抽象基类。提供了以字节的形式从流中读取写入内容的方法。其中streamWriter和StreamReader为我们提供了从流中读取写入字符串的方法。
二.常用的stream的子类:
Memorystream:存储在内存的字节流
FileStream:存储在文件系统的字节流
BufferedStream:为其他流提供缓冲的流
三.Stream的基本属性以及方法:
在这里插入图片描述
在这里插入图片描述
四.TextReader:
表示可以读取有序字符序列的读取器,抽象类,不能直接被实例化。
同时实现了IDidposable借口可以使用using进行释放,StreamReader以及stringReader都派生于他,StreamReader从流中读取字符,Stringreader从字符串中读取字符。
相关的方法
close():可关闭TextReader并且关闭与他相关的所有系统资源
Dispose():可以关闭与他相关的所有的系统资源
Peek():读取下一个字符而不更改读取器的状态或字符源。
Read():读取下一个字符并将该字符的字符w气质提升一个字符
ReadAsync():异步读取

五.streamReader的简单使用:
①:读取:

public void static TextReaderEx(){|
		string path=@"d:abca.txt";
	TextReader reader=new StreamReader(path,Encoding.UTF8);
	string Line=reader.ReadLine();
	while(line!=null){
		Console.WriteLine(ss);
		line=reader.ReadLine();
	}
	//reader.Read();  读取下一个字符并将指针指向下一个字符
	//reader.peek(); 读取下一个字符但是指针不动
	reader.close();				  
		 }

六.Streamwriter的简单使用
①.基本介绍:以一种特定的编码向流中写入字符。
默认情况下不是线程安全的
②.方法:Close() dispose() Flush() [清理当前编写器的所有缓冲区] Write()[将字符写入文本流] WriteLine() [将字符写入文本流,并跟上终止符,也就是换行] 注意我们的音频视频是使用字节流进行读取写入的使用字符流进行复制写入不可以播放。
③.基本使用:

StreamWriter writer =new StreamWriter(string Path,bool append);
StreamWriter writer =new StreamWriter(string Path,bool append,Encoding encoding);
StreamWriter writer =new StreamWriter(string Path,bool append,Encoding encoding,int BufferSize);
//其中这里的布尔类型的append参数指定的是是否进行追加当文件存在的时候,如果为否的话当文件存在的时候将进行覆盖文件不存在的时候将进行创建,int类型的BufferSize参数指的是指定缓冲区的大小
//基本使用:
string Path=@"d:testtest.txt";
StreamWriter sw=new StreamWriter(path,true,Encoding.UTF8);
sw.write("随便写点什么");
sw.WriteLine("在说一句吧");
sw.Write(sw.NewLine); //写入换行符 
sw.Write(123456);
sw.Close(); //关闭流
sw.Dispose();  //释放资源

//使用Using进行资源的释放,因为我们的streamWriter实现了IDispose借口所以我们可以通过using进行资源的释放
using(StreamWriter sw =new StreamWriter(path,true)){
//进行写入的操作
}

③.使用读写流实现简单的文件的1复制

string path=@"d:test1test1.txt";
byte buffer=new byte[1024];
using(StreamReader sr =new StreamReader(path)){
using(StreamWriter sw=new StreamWriter(@"d:test2test2.txt")){
while(true){
int count=sr.read(buffer,0,buffer.length);
if(count=0) break;
sw.Write(buffer,0,buffer.length);
}
}
}

七.理解与总结:
今天我们介绍的是IO中的Streamwriter和streamWriter在我们日常进行工作的时候基本是不会使用这些底层的读写流的,因为不仅效率不高并且线程不安全,但是我们一定要知道的事任何框架或者工具都是基于这些底层的东西进行封装的,所以这些知识我们也是一定要了解的,下面我们将会介绍其他几种流极其使用场景。

***每天进步一点点,做最好的自己!ovo ***

最后

以上就是简单日记本为你收集整理的Stream之Streamwriter&StreamReader的全部内容,希望文章能够帮你解决Stream之Streamwriter&StreamReader所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部