#region 程序集 mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
// C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\mscorlib.dll
#endregion
using System.Runtime.InteropServices;
using System.Security;
using System.Text;
using System.Threading.Tasks;
namespace System.IO
{
//
// 摘要:
// 实现一个 System.IO.TextReader,使其以一种特定的编码从字节流中读取字符。 若要浏览此类型的.NET Framework 源代码,请参阅
// Reference Source。
[ComVisible(true)]
public class StreamReader : TextReader
{
//
// 摘要:
// 空流周围的 System.IO.StreamReader。
public static readonly StreamReader Null;
//
// 摘要:
// 为指定的流初始化 System.IO.StreamReader 类的新实例。
//
// 参数:
// stream:
// 要读取的流。
//
// 异常:
// T:System.ArgumentException:
// stream 不支持读取。
//
// T:System.ArgumentNullException:
// stream 为 null。
public StreamReader(Stream stream);
//
// 摘要:
// 为指定的文件名初始化 System.IO.StreamReader 类的新实例。
//
// 参数:
// path:
// 要读取的完整文件路径。
//
// 异常:
// T:System.ArgumentException:
// path 为空字符串 ("")。
//
// T:System.ArgumentNullException:
// path 为 null。
//
// T:System.IO.FileNotFoundException:
// 无法找到该文件。
//
// T:System.IO.DirectoryNotFoundException:
// 指定的路径无效,例如位于未映射的驱动器上。
//
// T:System.IO.IOException:
// path 包含不正确或无效的文件名、目录名或卷标语法。
public StreamReader(string path);
//
// 摘要:
// 用指定的字节顺序标记检测选项,为指定的流初始化 System.IO.StreamReader 类的一个新实例。
//
// 参数:
// stream:
// 要读取的流。
//
// detectEncodingFromByteOrderMarks:
// 指示是否在文件头查找字节顺序标记。
//
// 异常:
// T:System.ArgumentException:
// stream 不支持读取。
//
// T:System.ArgumentNullException:
// stream 为 null。
public StreamReader(Stream stream, bool detectEncodingFromByteOrderMarks);
//
// 摘要:
// 用指定的字符编码为指定的流初始化 System.IO.StreamReader 类的一个新实例。
//
// 参数:
// stream:
// 要读取的流。
//
// encoding:
// 要使用的字符编码。
//
// 异常:
// T:System.ArgumentException:
// stream 不支持读取。
//
// T:System.ArgumentNullException:
// stream 或 encoding 为 null。
public StreamReader(Stream stream, Encoding encoding);
//
// 摘要:
// 为指定的文件名初始化 System.IO.StreamReader 类的新实例,带有指定的字节顺序标记检测选项。
//
// 参数:
// path:
// 要读取的完整文件路径。
//
// detectEncodingFromByteOrderMarks:
// 指示是否在文件头查找字节顺序标记。
//
// 异常:
// T:System.ArgumentException:
// path 为空字符串 ("")。
//
// T:System.ArgumentNullException:
// path 为 null。
//
// T:System.IO.FileNotFoundException:
// 无法找到该文件。
//
// T:System.IO.DirectoryNotFoundException:
// 指定的路径无效,例如位于未映射的驱动器上。
//
// T:System.IO.IOException:
// path 包含不正确或无效的文件名、目录名或卷标语法。
public StreamReader(string path, bool detectEncodingFromByteOrderMarks);
//
// 摘要:
// 用指定的字符编码,为指定的文件名初始化 System.IO.StreamReader 类的一个新实例。
//
// 参数:
// path:
// 要读取的完整文件路径。
//
// encoding:
// 要使用的字符编码。
//
// 异常:
// T:System.ArgumentException:
// path 为空字符串 ("")。
//
// T:System.ArgumentNullException:
// path 或 encoding 为 null。
//
// T:System.IO.FileNotFoundException:
// 无法找到该文件。
//
// T:System.IO.DirectoryNotFoundException:
// 指定的路径无效,例如位于未映射的驱动器上。
//
// T:System.NotSupportedException:
// path 包含不正确或无效的文件名、目录名或卷标语法。
public StreamReader(string path, Encoding encoding);
//
// 摘要:
// 为指定的流初始化 System.IO.StreamReader 类的新实例,带有指定的字符编码和字节顺序标记检测选项。
//
// 参数:
// stream:
// 要读取的流。
//
// encoding:
// 要使用的字符编码。
//
// detectEncodingFromByteOrderMarks:
// 指示是否在文件头查找字节顺序标记。
//
// 异常:
// T:System.ArgumentException:
// stream 不支持读取。
//
// T:System.ArgumentNullException:
// stream 或 encoding 为 null。
public StreamReader(Stream stream, Encoding encoding, bool detectEncodingFromByteOrderMarks);
//
// 摘要:
// 为指定的文件名初始化 System.IO.StreamReader 类的新实例,带有指定的字符编码和字节顺序标记检测选项。
//
// 参数:
// path:
// 要读取的完整文件路径。
//
// encoding:
// 要使用的字符编码。
//
// detectEncodingFromByteOrderMarks:
// 指示是否在文件头查找字节顺序标记。
//
// 异常:
// T:System.ArgumentException:
// path 为空字符串 ("")。
//
// T:System.ArgumentNullException:
// path 或 encoding 为 null。
//
// T:System.IO.FileNotFoundException:
// 无法找到该文件。
//
// T:System.IO.DirectoryNotFoundException:
// 指定的路径无效,例如位于未映射的驱动器上。
//
// T:System.NotSupportedException:
// path 包含不正确或无效的文件名、目录名或卷标语法。
public StreamReader(string path, Encoding encoding, bool detectEncodingFromByteOrderMarks);
//
// 摘要:
// 为指定的流初始化 System.IO.StreamReader 类的新实例,带有指定的字符编码、字节顺序标记检测选项和缓冲区大小。
//
// 参数:
// stream:
// 要读取的流。
//
// encoding:
// 要使用的字符编码。
//
// detectEncodingFromByteOrderMarks:
// 指示是否在文件头查找字节顺序标记。
//
// bufferSize:
// 最小缓冲区大小。
//
// 异常:
// T:System.ArgumentException:
// 流不支持读取。
//
// T:System.ArgumentNullException:
// stream 或 encoding 为 null。
//
// T:System.ArgumentOutOfRangeException:
// bufferSize 小于或等于零。
public StreamReader(Stream stream, Encoding encoding, bool detectEncodingFromByteOrderMarks, int bufferSize);
//
// 摘要:
// 为指定的文件名初始化 System.IO.StreamReader 类的新实例,带有指定字符编码、字节顺序标记检测选项和缓冲区大小。
//
// 参数:
// path:
// 要读取的完整文件路径。
//
// encoding:
// 要使用的字符编码。
//
// detectEncodingFromByteOrderMarks:
// 指示是否在文件头查找字节顺序标记。
//
// bufferSize:
// 最小缓冲区大小(以 16 位字符的数目为单位)。
//
// 异常:
// T:System.ArgumentException:
// path 为空字符串 ("")。
//
// T:System.ArgumentNullException:
// path 或 encoding 为 null。
//
// T:System.IO.FileNotFoundException:
// 无法找到该文件。
//
// T:System.IO.DirectoryNotFoundException:
// 指定的路径无效,例如位于未映射的驱动器上。
//
// T:System.NotSupportedException:
// path 包含不正确或无效的文件名、目录名或卷标语法。
//
// T:System.ArgumentOutOfRangeException:
// buffersize 小于或等于零。
[SecuritySafeCritical]
public StreamReader(string path, Encoding encoding, bool detectEncodingFromByteOrderMarks, int bufferSize);
//
// 摘要:
// 为指定的流初始化 System.IO.StreamReader 类的新实例,带有指定的字符编码、字节顺序标记检测选项和缓冲区大小,有选择性的打开流。
//
// 参数:
// stream:
// 要读取的流。
//
// encoding:
// 要使用的字符编码。
//
// detectEncodingFromByteOrderMarks:
// 如果要在文件开头查找字节顺序标记,则为 true;否则为 false。
//
// bufferSize:
// 最小缓冲区大小。
//
// leaveOpen:
// 如果在释放 System.IO.StreamReader 对象后保持流处于打开状态,则为 true;否则为 false。
public StreamReader(Stream stream, Encoding encoding, bool detectEncodingFromByteOrderMarks, int bufferSize, bool leaveOpen);
//
// 摘要:
// 获取当前 System.IO.StreamReader 对象正在使用的当前字符编码。
//
// 返回结果:
// 当前读取器所使用的当前字符编码。 第一次调用 System.IO.StreamReader 的任何 Overload:System.IO.StreamReader.Read
// 方法后,该值可能会不同,因为直到第一次调用 Overload:System.IO.StreamReader.Read 方法时,才会进行编码的自动检测。
public virtual Encoding CurrentEncoding { get; }
//
// 摘要:
// 获取一个值,该值指示当前的流位置是否在流结尾。
//
// 返回结果:
// 如果当前流位置位于流的末尾,则为 true;否则为 false。
//
// 异常:
// T:System.ObjectDisposedException:
// 已释放基础流。
public bool EndOfStream { get; }
//
// 摘要:
// 返回基础流。
//
// 返回结果:
// 基础流。
public virtual Stream BaseStream { get; }
//
// 摘要:
// 关闭 System.IO.StreamReader 对象和基础流,并释放与读取器关联的所有系统资源。
public override void Close();
//
// 摘要:
// 清除内部缓冲区。
public void DiscardBufferedData();
//
// 摘要:
// 返回下一个可用字符,但不使用它。
//
// 返回结果:
// 为表示下一个要读取的字符的整数,或者,如果没有要读取的字符或该流不支持查找,则为 -1。
//
// 异常:
// T:System.IO.IOException:
// 出现 I/O 错误。
public override int Peek();
//
// 摘要:
// 读取输入流中的下一个字符并使该字符位置提升一个字符。
//
// 返回结果:
// 输入流中表示为 System.Int32 对象的下一个字符。如果不再有可用的字符,则为 -1。
//
// 异常:
// T:System.IO.IOException:
// 出现 I/O 错误。
public override int Read();
//
// 摘要:
// 从指定的索引位置开始将来自当前流的指定的最多字符读到缓冲区。
//
// 参数:
// buffer:
// 此方法返回时,包含指定的字符数组,该数组的 index 和 (index + count - 1) 之间的值由从当前源中读取的字符替换。
//
// index:
// 开始写入的 buffer 的索引。
//
// count:
// 要读取的最大字符数。
//
// 返回结果:
// 已读取的字符数,或者如果已到达流结尾并且未读取任何数据,则为 0。 该数小于或等于 count 参数,具体取决于流中是否有可用的数据。
//
// 异常:
// T:System.ArgumentException:
// 缓冲区长度减去 index 小于 count。
//
// T:System.ArgumentNullException:
// buffer 为 null。
//
// T:System.ArgumentOutOfRangeException:
// index 或 count 为负数。
//
// T:System.IO.IOException:
// 发生 I/O 错误,例如流关闭。
public override int Read(char[] buffer, int index, int count);
//
// 摘要:
// 从当前流中异步读取指定的最大字符,并且从指定的索引位置开始将该数据写入缓冲区。
//
// 参数:
// buffer:
// 此方法返回时,包含指定的字符数组,该数组的 index 和 (index + count - 1) 之间的值由从当前源中读取的字符替换。
//
// index:
// 在 buffer 中开始写入的位置。
//
// count:
// 要读取的最大字符数。 如果在将指定的字符数写入缓冲区之前已到达流结尾,则将返回当前方法。
//
// 返回结果:
// 表示异步读取操作的任务。 TResult 参数的值包含读入缓冲区的总字符数。 如果当前可用字符数少于所请求的字符数,则该结果值可小于所请求的字符数;如果已到达流结尾时,则为
// 0(零)。
//
// 异常:
// T:System.ArgumentNullException:
// buffer 为 null。
//
// T:System.ArgumentOutOfRangeException:
// index 或 count 为负数。
//
// T:System.ArgumentException:
// index 和 count 的总和大于缓冲区长度。
//
// T:System.ObjectDisposedException:
// 已释放流。
//
// T:System.InvalidOperationException:
// 以前的读取操作当前正在使用读取器。
[ComVisible(false)]
public override Task<int> ReadAsync(char[] buffer, int index, int count);
//
// 摘要:
// 从当前流中读取指定的最大字符数并从指定的索引位置开始将该数据写入缓冲区。
//
// 参数:
// buffer:
// 此方法返回时,包含指定的字符数组,该数组的 index 和 (index + count - 1) 之间的值由从当前源中读取的字符替换。
//
// index:
// 在 buffer 中开始写入的位置。
//
// count:
// 要读取的最大字符数。
//
// 返回结果:
// 已读取的字符数。 该数字将小于或等于 count,取决于是否所有的输入字符都已读取。
//
// 异常:
// T:System.ArgumentNullException:
// buffer 为 null。
//
// T:System.ArgumentException:
// 缓冲区长度减去 index 小于 count。
//
// T:System.ArgumentOutOfRangeException:
// index 或 count 为负数。
//
// T:System.ObjectDisposedException:
// System.IO.StreamReader 已关闭。
//
// T:System.IO.IOException:
// 出现 I/O 错误。
public override int ReadBlock(char[] buffer, int index, int count);
//
// 摘要:
// 从当前流中异步读取指定的最大字符,并且从指定的索引位置开始将该数据写入缓冲区。
//
// 参数:
// buffer:
// 此方法返回时,包含指定的字符数组,该数组的 index 和 (index + count - 1) 之间的值由从当前源中读取的字符替换。
//
// index:
// 在 buffer 中开始写入的位置。
//
// count:
// 要读取的最大字符数。 如果在将指定的字符数写入到缓冲区之前就已经达到流结尾,则将返回此方法。
//
// 返回结果:
// 表示异步读取操作的任务。 TResult 参数的值包含读入缓冲区的总字符数。 如果当前可用字符数少于所请求的字符数,则该结果值可小于所请求的字符数;如果已到达流结尾时,则为
// 0(零)。
//
// 异常:
// T:System.ArgumentNullException:
// buffer 为 null。
//
// T:System.ArgumentOutOfRangeException:
// index 或 count 为负数。
//
// T:System.ArgumentException:
// index 和 count 的总和大于缓冲区长度。
//
// T:System.ObjectDisposedException:
// 已释放流。
//
// T:System.InvalidOperationException:
// 以前的读取操作当前正在使用读取器。
[ComVisible(false)]
public override Task<int> ReadBlockAsync(char[] buffer, int index, int count);
//
// 摘要:
// 从当前流中读取一行字符并将数据作为字符串返回。
//
// 返回结果:
// 输入流中的下一行;如果到达了输入流的末尾,则为 null。
//
// 异常:
// T:System.OutOfMemoryException:
// 没有足够的内存来为返回的字符串分配缓冲区。
//
// T:System.IO.IOException:
// 出现 I/O 错误。
public override string ReadLine();
//
// 摘要:
// 从当前流中异步读取一行字符并将数据作为字符串返回。
//
// 返回结果:
// 表示异步读取操作的任务。 TResult 参数的值包含来自流的下一行;如果读取了所有字符,则为 null。
//
// 异常:
// T:System.ArgumentOutOfRangeException:
// 下一行中的字符数大于 System.Int32.MaxValue。
//
// T:System.ObjectDisposedException:
// 已释放流。
//
// T:System.InvalidOperationException:
// 以前的读取操作当前正在使用读取器。
[ComVisible(false)]
public override Task<string> ReadLineAsync();
//
// 摘要:
// 读取来自流的当前位置到结尾的所有字符。
//
// 返回结果:
// 字符串形式的流的其余部分(从当前位置到结尾)。 如果当前位置位于流结尾,则返回空字符串 (“”)。
//
// 异常:
// T:System.OutOfMemoryException:
// 没有足够的内存来为返回的字符串分配缓冲区。
//
// T:System.IO.IOException:
// 出现 I/O 错误。
public override string ReadToEnd();
//
// 摘要:
// 异步读取来自流的当前位置到结尾的所有字符并将它们作为一个字符串返回。
//
// 返回结果:
// 表示异步读取操作的任务。 TResult 参数值包括带有从流的当前位置到结尾的字符的字符串。
//
// 异常:
// T:System.ArgumentOutOfRangeException:
// 字符数大于 System.Int32.MaxValue。
//
// T:System.ObjectDisposedException:
// 已释放流。
//
// T:System.InvalidOperationException:
// 以前的读取操作当前正在使用读取器。
[ComVisible(false)]
public override Task<string> ReadToEndAsync();
//
// 摘要:
// 关闭基础流,释放 System.IO.StreamReader 使用的未托管资源,同时还可以根据需要释放托管资源。
//
// 参数:
// disposing:
// 若要释放托管资源和非托管资源,则为 true;若仅释放非托管资源,则为 false。
protected override void Dispose(bool disposing);
}
}