C#的StreamReader类使用说明
C#的StreamReader类使用说明
- 一:StreamReader类简单说明
- 二:StreamReader类的构造函数
- 三:StreamReader类的属性
- 四:StreamReader类的常用方法
- 1: StreamReader.Close 的方法介绍
- 2: StreamReader.DiscardBufferedData 的方法介绍
- 3: StreamReader.Dispose(Boolean) 的方法介绍
- 4: StreamReader.Read 的方法介绍
- 5: StreamReader.ReadLine 方法介绍
- 6: StreamReader.ReadToEnd 方法介绍
一:StreamReader类简单说明
1)StreamReader实现一个 TextReader,使其以一种特定的编码从字节流中读取字符。
2)专为特定编码中的字符输入设计,而 Stream类用于字节输入和输出。 用于 StreamReader 从 标准文本文件中读取信息行。
3)StreamReader 默认为 UTF-8 编码,除非另有指定,而不是默认为当前系统的 ANSI 代码页。
二:StreamReader类的构造函数
构造函数 | 构造函数 说明 |
---|---|
StreamReader(Stream) | 为指定的流,初始化 StreamReader 类的新实例。 |
StreamReader(Stream, Boolean) | 用指定的字节顺序标记检测选项,为指定的流,初始化 StreamReader 类的一个新实例。 |
StreamReader(Stream, Encoding) | 用指定的字符编码为指定的流,初始化 StreamReader 类的一个新实例。 |
StreamReader(Stream, Encoding, Boolean) | 为指定的流,初始化 StreamReader 类的新实例,带有指定的字符编码和字节顺序标记检测选项。 |
StreamReader(Stream, Encoding, Boolean, Int32) | 为指定的流,初始化 StreamReader 类的新实例,带有指定的字符编码、字节顺序标记检测选项和缓冲区大小。 |
StreamReader(String) | 为指定的文件名,初始化 StreamReader 类的新实例。 |
StreamReader(String, Boolean) | 为指定的文件名,初始化 StreamReader 类的新实例,带有指定的字节顺序标记检测选项。 |
StreamReader(String, Encoding) | 用指定的字符编码,为指定的文件名,初始化 StreamReader 类的一个新实例。 |
StreamReader(String, Encoding, Boolean) | 为指定的文件名,初始化 StreamReader 类的新实例,带有指定的字符编码和字节顺序标记检测选项。 |
StreamReader(String, Encoding, Boolean, Int32) | 为指定的文件名,初始化 StreamReader 类的新实例,带有指定字符编码、字节顺序标记检测选项和缓冲区大小。 |
三:StreamReader类的属性
构造函数 | 构造函数 说明 |
---|---|
BaseStream | 返回基础流。 |
CurrentEncoding | 获取当前 StreamReader 对象正在使用的当前字符编码。 |
EndOfStream | 获取一个值,该值指示当前的流位置是否在流结尾。 |
四:StreamReader类的常用方法
1: StreamReader.Close 的方法介绍
1)作用:关闭 StreamReader 对象和基础流,并释放与读取器关联的所有系统资源。
2)语法:
public override void Close ();
2: StreamReader.DiscardBufferedData 的方法介绍
1)作用:清除内部缓冲区。
2)语法:
public void DiscardBufferedData ();
3)补充说明:
使用 DiscardBufferedData 方法可重置对象的内部缓冲区 StreamReader 。 仅当内部缓冲区和的位置不匹配时,才需要调用此方法 BaseStream 。 在将数据读入缓冲区,并在基础流中查找新位置时,这些位置可能会变得不匹配。 此方法会降低性能,只应在绝对必要的情况下使用,例如,当你想要多次读取对象的部分内容时 StreamReader 。
3: StreamReader.Dispose(Boolean) 的方法介绍
1)作用:关闭基础流,释放 StreamReader 使用的未托管资源,同时还可以根据需要释放托管资源。
2)语法:
protected override void Dispose (bool disposing);
4: StreamReader.Read 的方法介绍
1)作用:读取输入流中的下一个字符或下一组字符。
2)语法:
public override int Read ();
public override int Read (char[] buffer, int index, int count);
重载 | 重载 说明 |
---|---|
Read() | 读取输入流中的下一个字符并使该字符位置提升一个字符。 |
Read(Char[], Int32, Int32) | 从指定的索引位置开始将来自当前流的指定的最多字符读到缓冲区。 |
5: StreamReader.ReadLine 方法介绍
1)作用:从当前流中读取一行字符并将数据作为字符串返回。
2)语法:
public override string ReadLine ();
3)使用举例
string str_rd = @"J:\FFOutput\Version.txt";
//使用streamReader来读取一个文本文件
using (StreamReader StrRd = new StreamReader(str_rd, Encoding.UTF8))
{
while (!StrRd.EndOfStream)//文件流,结束前,一直读取一行
{
Console.WriteLine(StrRd.ReadLine());
}
}
4)运行结果
美丽珠海 |
6: StreamReader.ReadToEnd 方法介绍
1)作用:读取来自流的当前位置,到结尾的所有字符。
2)语法:
public override string ReadToEnd ();
3)使用举例:
string path = @"J:\FFOutput\Version.txt";
try
{
if (File.Exists(path))
{
File.Delete(path);
}
using (StreamWriter sw = new StreamWriter(path))
{
sw.WriteLine("1)专心做好一件事");
sw.WriteLine("2)知识消化系统");
sw.WriteLine("3)应用想法无限");
sw.WriteLine("4)底层逻辑简单");
}
using (StreamReader sr = new StreamReader(path))
{
// 这允许您执行一次读取操作.
Console.WriteLine(sr.ReadToEnd());
}
}
catch (Exception e)
{
Console.WriteLine("操作有误: {0}", e.ToString());
}
4)运行结果:
1)专心做好一件事 2)知识消化系统 3)应用想法无限 4)底层逻辑简单 |