StreamReader和StreamWriter说明
StreamReader/StreamWriter操作的是字符数据(char),而FileStream操作的是字节数据(byte)
FileStream与StreamXXXX类的默认编码都是UTF8,而一个中文字符占2个字符,所以StreamXXXX类常用于文本的打开与保存,而FileStream则用于数据的传输。
StreamReader sw = new StreamReader(Stream stream);
StreamReader sw = new StreamReader(string path);
//为指定的流/文件名初始化 StreamReader 类的新实例,并且使用默认的编码(UTF-8)读取文件
StreamReader sw = new StreamReader(Stream stream, bool detectEncodingFromByteOrderMarks);
StreamReader sw = new StreamReader(string path, bool detectEncodingFromByteOrderMarks);
//用指定的字节顺序(BOM)标记检测选项,为指定的流/文件名初始化 StreamReader 类的一个新实例
StreamReader sw = new StreamReader(Stream stream, Encoding encoding);
StreamReader sw = new StreamReader(string path, Encoding encoding);
//用指定的字符编码为指定的流/文件名初始化 StreamReader 类的一个新实例,因为有些编码(如GB2312、UTF7)就没有BOM,就认不到编码,就需要手动指定一个编码。
StreamReader sw = new StreamReader(Stream stream, Encoding encoding, bool detectEncodingFromByteOrderMarks);
StreamReader sw = new StreamReader(string path, Encoding encoding, bool detectEncodingFromByteOrderMarks);
//为指定的流/文件名初始化 StreamReader 类的新实例,带有指定的字符编码和字节顺序标记检测选项。
StreamReader sw = new StreamReader(Stream stream, bool detectEncodingFromByteOrderMarks, int bufferSize);
StreamReader sw = new StreamReader(string path, bool detectEncodingFromByteOrderMarks, int bufferSize);
//为指定的流/文件名初始化 StreamReader 类的新实例,带有指定的字符编码、字节顺序标记检测选项和缓冲区大小。
1:public override int Read(); //读取输入流中的下一个字符并使该字符的位置提升一个字符,返回的是十进制字符
StreamReader sr = new StreamReader(@"d:/source.txt", Encoding.UTF8);
int Ichar = 0;
//不再有可用的字符,则为 -1 例如读取其中一个字符十进制是29992 则转为ASCII字符是“用”
while ((Ichar = sr.Read()) != -1)
{
Console.WriteLine(Ichar+"="+Convert.ToChar(Ichar).ToString());//将int类型转成ASCII字符
}
结果如下

2:public override int Read(char[] buffer, int index, int count); //Read(字节数组,数组使用的开始位置,读取字节的个数)
buffer是空存储间,先把从index开始位置读取count个的十进制字符复制到buffer,然后再读取剩余的字符
StreamReader sr = new StreamReader(@"d:/source.txt", Encoding.UTF8);
char[] buffer = new char[512];
int readCount = sr.Read(buffer, 0, 512);
for (int i = 0; i < readCount; i++)
{
Console.WriteLine(i+"="+buffer[i].ToString());
}


3:public override string ReadLine() //行读入,返回值是字符串
StreamReader sr = new StreamReader(@"d:/source.txt", Encoding.UTF8);
string strLine = null;
while ((strLine = sr.ReadLine()) != null)
{
Console.WriteLine(strLine);
}
4:public override string ReadToEnd() //从开始位置读取到末尾
5:public override int Peek() //读取下一个字符
6:EndOfStream // 获取一个值,该值表示当前的流位置是否在流的末尾
7:CurrentEncoding // 获取当前 StreamReader 对象正在使用的当前字符编码
StreamWriter sw = new StreamWriter(Stream stream);
StreamWriter sw = new StreamWriter(string path);
StreamWriter sw = new StreamWriter(Stream stream,Encoding encoding);
StreamWriter sw = new StreamWriter(Stream stream,Encoding encoding,int bufferSize);
//用指定的编码及缓冲区大小,为指定的流初始化 StreamWriter 类的新实例。int为缓冲区大小
StreamWriter sw = new StreamWriter(string path,bool append,Encoding encoding);
StreamWriter sw = new StreamWriter(string path,bool append,Encoding encoding,int bufferSize);
//使用指定编码和缓冲区大小,为指定路径上的指定文件初始化 StreamWriter 类的新实例。true表示如果该文件存在,则可以向其追加。false表示将其全部重写。如果该文 件不存在,则此构造函数将创建一个新文件。
StreamReader和StreamWriter说明的更多相关文章
- C#对文件/目录的操作:Path、File、Directory、FileStream、StreamReader、StreamWriter等类的浅析
以下类的命名空间都是:System.I/0; 一.Path:主要对文件路径的操作! 常用方法: String path=@"C:\a\b\c\123.txt"; 1-1.Path. ...
- 文件流操作(FileStream,StreamReader,StreamWriter)
大文件拷贝: /// <summary> /// 大文件拷贝 /// </summary> /// <param name="sSource"> ...
- StreamReader 和 StreamWriter 简单调用
/* ######### ############ ############# ## ########### ### ###### ##### ### ####### #### ### ####### ...
- C#基础学习之StreamReader和StreamWriter
StreamReader和StreamWriter操作字符的 FileStream操作字节的 //使用StreamReader读取文件 using (StreamReader sr=new Strea ...
- StreamReader和StreamWriter中文乱码问题
StreamReader和StreamWriter中文乱码问题 1.写入: string FilePath = @"E:\Measure.csv"; StreamWriter w ...
- File FileStream StreamReader和StreamWriter
File 静态类 ReadAllBytes 和 WriteAllBytes ,用于一次性全部读取和写入小文件的字节码, ReadLine ReadkAll 用于一 ...
- C#--几个数据流Stream;StreamReader;StreamWriter;MemoryStream;BufferStream;
命名空间:System.IO; Stream: 各种流的基类,不能时行查找操作,Position属性不能修改.读取时不Position不会自动移动, HttpWebRequest webreq = ( ...
- 文件流StreamReader和StreamWriter的使用
using (StreamReader sr = new StreamReader(@"C:\Users\shuai\Desktop\文件流读取.txt", Encoding.De ...
- 使用StreamReader与StreamWriter进行文本文件读写
namespace filetest { class FileUtil { public static void WriteFile(string file) { using (FileStream ...
- StreamReader与StreamWriter
StreamReader实现了抽象基类TextReader类,而StreamWriter实现了抽象基类TextWriter.分别用于对流的读取与写入. 先从StreamReader说起 一.构造方法 ...
随机推荐
- Java面试题之Forward和Redirect的区别
redirect:请求重定向:客户端行为,本质上为2次请求,地址栏改变,前一次请求对象消失.举例:你去银行办事(forward.jsp),结果告诉你少带了东西,你得先去公安局办(index.html) ...
- AttributePriority
还有AttributePriority,我们可以设置编译时优先级.如果我们对目标标记了多个aspect,这样postsharp就不确定注入先后顺序,这样不能确保正确性,在vs编译时候我们会看见警告:T ...
- Win32-Application的窗口和对话框
Win32 Application,没有基于MFC的类库,而是直接调用C++接口来编程. 一.弹出消息窗口 (1)最简单的,在当前窗口中弹出新窗口.新窗口只有“YES”按钮. int APIENTRY ...
- javascript连连看
经测试,IE,Firefox,Chrome,Opera可用. 连接线最多2个拐角.秘籍为:开始后连续输入zycjwdss 还剩0对 对数字 高度: 宽度: // 0)return 1;//IE i ...
- 报错:Exception in thread "main" java.lang.NoClassDefFoundError: Lorg/apache/hadoop/fs/FileSystem
报错现象: Exception in thread "main" java.lang.NoClassDefFoundError: Lorg/apache/hadoop/fs/Fil ...
- phpstorm 如何设置识别vue文件
非常简单,步骤如下: 第一步: 设置->plugins->browser repositories 搜索vue.js,然后安装一下vue.js插件,重启ide. 第二步: Editor - ...
- c#+CAD动态移动效果
public class MoveRotateScaleJig : DrawJig { public static List<Entity> entities = new List< ...
- 安装yii2 需要token 记录
在安装yii2过程中会提示需要token,参照github help: https://help.github.com/articles/creating-a-personal-access-toke ...
- Java学习笔记——鸵鸟学习记(三)
8,对象的创建与销毁 a, 构造方法——在构造对象的时候同时传入相关的属性 用于构造对象的方法(当创建对象时调用的方法) 规则:1)方法名与类名相同 2)无返回值 package my; public ...
- NOIP 2018 Day1
Fei2Xue@Lian$Tian! 三道原题qwq真的凉 半年前看到有人发说说,梦见省选打开题目,是Please contact lydsy2012@163.com! 没想到一语成谶 大众分300 ...