C#流读取类StreamReader的基本介绍

StreamReader类是用于读取文本文件的类。

构造函数

函数名说明
StreamReader(Stream stream)stream参数从底层的Stream对象创建StreamReader的实例
StreamWriter(String path)

path参数为要读取的文件的全路径。

若path只是文件名则其默认父路径是:项目文件夹\bin\Debug\

StreamReader ( String path,  bool detectEncodingFromByteOrderMarks )path参数是要读取文件的全路径,detectEncodingFromByteOrderMarks 参数是是否查找文件开头的字节顺序标记
StreamReader(String path,Encoding encoding)

path参数是要读取文件的全路径,

encoding参数指定使用的编码规范参数

属性:

BaseStream:返回基础流

CurrentEncoding:获取当前StreamReader对象正在使用的当前字符编码

EndOfStream获取一个值,该值表示当前的流位置是否在流的末尾

 

主要方法

方法名说明
void Close()关闭SteamReader
Read()读取输入字符中的下一个字符
String ReadLine()从基础字符中读取下一行
int ReadBlock( char[] buffer, int index, int count )从当前流中读取最大count的字符并从index开始将该数据写入buffer
string ReadToEnd()从整个流或流的当前位置读取到流的结尾

 

简单实例:

实例一:

//StreamReader 简单读取
StreamReader reader = new StreamReader(@"D:\test.txt",Encoding.Default);//初始化读取 设置编码格式,否则中文会乱码
string readStr = reader.ReadLine();//从流中读取一行  reader.ReadToEnd()读取全部
reader.Close();//关闭流

 实例二:

//逐行读取文件处理至文件结束
 StreamReader reader = new StreamReader(filename);
 string str = String.Empty;
 while ((str=reader.ReadLine() )!= null)
 {
      tbx_content.Text = tbx_content.Text+ str + '\n';
 }

备注一:路径path的写法,路径中的‘\’是转义字符,所以写成字符串的话要变成'\\'。例如:“C:\\Windows\\Work”

而对于多级目录的话会有很多的‘\\’是不方便的,所以C#中可以用  @"C:\Windows\Work"进行多级转义。

备注二:读取中文文件显示乱码的原因是 文件的编码格式与读取流的编码格式不一致导致的。

具体来说,

a.使用File和FileInfo创建文本文件使用的默认编码格式使UTF-8

b.在windows环境下手工创建的文件是ANSI格式。

c.StreamReader不指定编码格式的话,使用Unicode

所以我们对于读取中文文本时要使用StreamReader sr=new StreamReader(filename,Encoding.Default);使编码格式统一。

附表:

                                                            Encoding中常用的编码格式和说明

编码格式说明
Default操作系统当前的ANSI代码页的编码
Unicode使用Little-Endian字节顺序的UTF-16格式的编码
UTF-8UTF-8编码

 

  • 15
    点赞
  • 97
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值