本文由机器翻译。若要查看英语原文,请勾选“英语”复选框。 也可将鼠标指针移到文本上,在弹出窗口中显示英语原文。
翻译
英语

StreamReader 类

 

实现一个 TextReader,使其以一种特定的编码从字节流中读取字符。

若要浏览此类型的.NET Framework 源代码,请参阅 Reference Source

命名空间:   System.IO
程序集:  mscorlib(位于 mscorlib.dll)

System.Object
  System.MarshalByRefObject
    System.IO.TextReader
      System.IO.StreamReader

[SerializableAttribute]
[ComVisibleAttribute(true)]
public class StreamReader : TextReader

名称说明
System_CAPS_pubmethodStreamReader(Stream)

为指定的流初始化 StreamReader 类的新实例。

System_CAPS_pubmethodStreamReader(Stream, Boolean)

用指定的字节顺序标记检测选项,为指定的流初始化 StreamReader 类的一个新实例。

System_CAPS_pubmethodStreamReader(Stream, Encoding)

用指定的字符编码为指定的流初始化 StreamReader 类的一个新实例。

System_CAPS_pubmethodStreamReader(Stream, Encoding, Boolean)

为指定的流初始化 StreamReader 类的新实例,带有指定的字符编码和字节顺序标记检测选项。

System_CAPS_pubmethodStreamReader(Stream, Encoding, Boolean, Int32)

为指定的流初始化 StreamReader 类的新实例,带有指定的字符编码、字节顺序标记检测选项和缓冲区大小。

System_CAPS_pubmethodStreamReader(Stream, Encoding, Boolean, Int32, Boolean)

为指定的流初始化 StreamReader 类的新实例,带有指定的字符编码、字节顺序标记检测选项和缓冲区大小,有选择性的打开流。

System_CAPS_pubmethodStreamReader(String)

为指定的文件名初始化 StreamReader 类的新实例。

System_CAPS_pubmethodStreamReader(String, Boolean)

为指定的文件名初始化 StreamReader 类的新实例,带有指定的字节顺序标记检测选项。

System_CAPS_pubmethodStreamReader(String, Encoding)

用指定的字符编码,为指定的文件名初始化 StreamReader 类的一个新实例。

System_CAPS_pubmethodStreamReader(String, Encoding, Boolean)

为指定的文件名初始化 StreamReader 类的新实例,带有指定的字符编码和字节顺序标记检测选项。

System_CAPS_pubmethodStreamReader(String, Encoding, Boolean, Int32)

为指定的文件名初始化 StreamReader 类的新实例,带有指定字符编码、字节顺序标记检测选项和缓冲区大小。

名称说明
System_CAPS_pubpropertyBaseStream

返回基础流。

System_CAPS_pubpropertyCurrentEncoding

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

System_CAPS_pubpropertyEndOfStream

获取一个值,该值指示当前的流位置是否在流结尾。

名称说明
System_CAPS_pubmethodClose()

关闭 StreamReader 对象和基础流,并释放与读取器关联的所有系统资源。(覆盖 TextReader.Close()。)

System_CAPS_pubmethodCreateObjRef(Type)

创建包含所有生成代理用于与远程对象进行通信所需的相关信息的对象。(继承自 MarshalByRefObject。)

System_CAPS_pubmethodDiscardBufferedData()

清除内部缓冲区。

System_CAPS_pubmethodDispose()

释放由 TextReader 对象使用的所有资源。(继承自 TextReader。)

System_CAPS_protmethodDispose(Boolean)

关闭基础流,释放 StreamReader 使用的未托管资源,同时还可以根据需要释放托管资源。(覆盖 TextReader.Dispose(Boolean)。)

System_CAPS_pubmethodEquals(Object)

确定指定的对象是否等于当前对象。(继承自 Object。)

System_CAPS_protmethodFinalize()

在垃圾回收将某一对象回收前允许该对象尝试释放资源并执行其他清理操作。(继承自 Object。)

System_CAPS_pubmethodGetHashCode()

作为默认哈希函数。(继承自 Object。)

System_CAPS_pubmethodGetLifetimeService()

检索当前生存期服务对象,用于控制此实例的生存期策略。(继承自 MarshalByRefObject。)

System_CAPS_pubmethodGetType()

获取当前实例的 Type(继承自 Object。)

System_CAPS_pubmethodInitializeLifetimeService()

获取生存期服务对象来控制此实例的生存期策略。(继承自 MarshalByRefObject。)

System_CAPS_protmethodMemberwiseClone()

创建当前 Object 的浅表副本。(继承自 Object。)

System_CAPS_protmethodMemberwiseClone(Boolean)

创建当前的浅表副本MarshalByRefObject对象。(继承自 MarshalByRefObject。)

System_CAPS_pubmethodPeek()

返回下一个可用字符,但不使用它。(覆盖 TextReader.Peek()。)

System_CAPS_pubmethodRead()

读取输入流中的下一个字符并使该字符位置提升一个字符。(覆盖 TextReader.Read()。)

System_CAPS_pubmethodRead(Char[], Int32, Int32)

从指定的索引位置开始将来自当前流的指定的最多字符读到缓冲区。(覆盖 TextReader.Read(Char[], Int32, Int32)。)

System_CAPS_pubmethodReadAsync(Char[], Int32, Int32)

从当前流中异步读取指定的最大字符,并且从指定的索引位置开始将该数据写入缓冲区。(覆盖 TextReader.ReadAsync(Char[], Int32, Int32)。)

System_CAPS_pubmethodReadBlock(Char[], Int32, Int32)

从当前流中读取指定的最大字符数并从指定的索引位置开始将该数据写入缓冲区。(覆盖 TextReader.ReadBlock(Char[], Int32, Int32)。)

System_CAPS_pubmethodReadBlockAsync(Char[], Int32, Int32)

从当前流中异步读取指定的最大字符,并且从指定的索引位置开始将该数据写入缓冲区。(覆盖 TextReader.ReadBlockAsync(Char[], Int32, Int32)。)

System_CAPS_pubmethodReadLine()

从当前流中读取一行字符并将数据作为字符串返回。(覆盖 TextReader.ReadLine()。)

System_CAPS_pubmethodReadLineAsync()

从当前流中异步读取一行字符并将数据作为字符串返回。(覆盖 TextReader.ReadLineAsync()。)

System_CAPS_pubmethodReadToEnd()

读取来自流的当前位置到结尾的所有字符。(覆盖 TextReader.ReadToEnd()。)

System_CAPS_pubmethodReadToEndAsync()

异步读取来自流的当前位置到结尾的所有字符并将它们作为一个字符串返回。(覆盖 TextReader.ReadToEndAsync()。)

System_CAPS_pubmethodToString()

返回表示当前对象的字符串。(继承自 Object。)

名称说明
System_CAPS_pubfieldSystem_CAPS_staticNull

空流周围的 StreamReader

System_CAPS_note说明

若要查看此类型的.NET Framework 源代码,请参阅 Reference Source 您可以浏览源代码、 下载脱机查看参考资料和调试; 在逐句通过源 (包括修补程序和更新)see instructions.

StreamReader 专为使用特定编码的字符输入而 Stream 类设计用于字节输入和输出。 使用 StreamReader 的标准文本文件中读取行信息。

System_CAPS_important重要事项

此类型实现 IDisposable 接口。 在使用完类型后,您应直接或间接释放类型。 若要直接释放类型,调用其 Dispose 中的方法 try/catch 块。 若要间接释放类型,请使用 using(在 C# 中)或 Using(在 Visual Basic 中)等语言构造。 有关详细信息,请参阅 IDisposable 接口主题中的“使用实现 IDisposable 的对象”一节。

StreamReader 默认值为 utf-8 编码,除非指定,否则,而不是默认为当前系统的 ANSI 代码页。 Utf-8 正确处理 Unicode 字符,并在本地化版本的操作系统上提供一致的结果。 如果您获得的当前字符编码使用 CurrentEncoding 属性的值不是可靠直到后第一个 Read 方法,因为直到第一个调用不进行编码自动检测 Read 方法。

默认情况下, StreamReader 不是线程安全。 请参阅 TextReader.Synchronized 有关线程安全包装。

Read(Char[], Int32, Int32)Write(Char[], Int32, Int32) 方法重载读取和写入指定的字符数 count 参数。 这些是区别于 BufferedStream.ReadBufferedStream.Write, ,它读取和写入指定的字节数 count 参数。 使用 BufferedStream 仅用于读取和写入字节的整数数组元素的方法。

System_CAPS_note说明

从读取时 Stream, ,它是更高效地使用的缓冲区,则与该流的内部缓冲区的大小相同。

通用 I/O 任务的列表,请参阅 通用 I/O 任务

下面的示例使用的一个实例 StreamReader 可以从文件读取文本。 在此示例中使用的构造函数不支持在使用 Windows 应用商店 应用程序。

using System;
using System.IO;

class Test 
{
    public static void Main() 
    {
        try 
        {
            // Create an instance of StreamReader to read from a file.
            // The using statement also closes the StreamReader.
            using (StreamReader sr = new StreamReader("TestFile.txt")) 
            {
                string line;
                // Read and display lines from the file until the end of 
                // the file is reached.
                while ((line = sr.ReadLine()) != null) 
                {
                    Console.WriteLine(line);
                }
            }
        }
        catch (Exception e) 
        {
            // Let the user know what went wrong.
            Console.WriteLine("The file could not be read:");
            Console.WriteLine(e.Message);
        }
    }
}

下面的示例实例化 StreamReader 对象并调用其 ReadAsync 方法以异步方式读取文件。

using System;
using System.IO;
using System.Threading.Tasks;

class Example
{
    public static void Main()
    {
        ReadAndDisplayFilesAsync();
    }

    private async static void ReadAndDisplayFilesAsync()
    {
        String filename = "TestFile1.txt";
        Char[] buffer;

        using (var sr = new StreamReader(filename)) {
            buffer = new Char[(int)sr.BaseStream.Length];
            await sr.ReadAsync(buffer, 0, (int)sr.BaseStream.Length);
        }

        Console.WriteLine(new String(buffer));
    }
}
// The example displays the following output:
//       This is the first line of text in a relatively short file.
//       This is the second line.
//       This is the third line.
//       This is the fourth and final line.

通用 Windows 平台
自 8 起可用
.NET Framework
自 1.1 起可用
可移植类库
可移植 .NET 平台 中受支持
Silverlight
自 2.0 起可用
Windows Phone Silverlight
自 7.0 起可用
Windows Phone
自 8.1 起可用

此类型的所有公共静态(Visual Basic 中的 已共享 在 Visual Basic 中)成员都是线程安全的。不保证所有实例成员都是线程安全的。

返回页首
显示: