StringReader 类 
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
实现从字符串进行读取的 TextReader。
public ref class StringReader : System::IO::TextReaderpublic class StringReader : System.IO.TextReader[System.Serializable]
public class StringReader : System.IO.TextReader[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class StringReader : System.IO.TextReadertype StringReader = class
    inherit TextReader[<System.Serializable>]
type StringReader = class
    inherit TextReader[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type StringReader = class
    inherit TextReaderPublic Class StringReader
Inherits TextReader- 继承
- 继承
- 属性
示例
以下示例演示如何以异步方式读取整个字符串。
using System;
using System.IO;
using System.Text;
namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            ReadCharacters();
        }
        static async void ReadCharacters()
        {
            StringBuilder stringToRead = new StringBuilder();
            stringToRead.AppendLine("Characters in 1st line to read");
            stringToRead.AppendLine("and 2nd line");
            stringToRead.AppendLine("and the end");
            using (StringReader reader = new StringReader(stringToRead.ToString()))
            {
                string readText = await reader.ReadToEndAsync();
                Console.WriteLine(readText);
            }
        }
    }
}
// The example displays the following output:
//
// Characters in 1st line to read
// and 2nd line
// and the end
//
Imports System.IO
Imports System.Text
Module Module1
    Sub Main()
        ReadCharacters()
    End Sub
    Async Sub ReadCharacters()
        Dim stringToRead = New StringBuilder()
        stringToRead.AppendLine("Characters in 1st line to read")
        stringToRead.AppendLine("and 2nd line")
        stringToRead.AppendLine("and the end")
        Using reader As StringReader = New StringReader(stringToRead.ToString())
            Dim readText As String = Await reader.ReadToEndAsync()
            Console.WriteLine(readText)
        End Using
    End Sub
End Module
' The example displays the following output:
'
' Characters in 1st line to read
' and 2nd line
' and the end
'
注解
StringReader 使你能够以同步或异步方式读取字符串。 可以使用 或 ReadAsync 方法一次Read读取字符,一次使用 ReadLine 或 方法读取一行,并使用 ReadToEnd 或 ReadLineAsyncReadToEndAsync 方法读取整个字符串。
注意
此类型可实现 IDisposable 接口,但实际上没有任何要释放的资源。 这意味着无需通过直接调用 Dispose() 或使用语言构造(C# 中的 using 或 Visual Basic 中的 Using)对其进行处理。
下表列出了其他典型或相关 I/O 任务的示例。
| 若要执行此操作... | 请参见本主题中的示例... | 
|---|---|
| 创建文本文件。 | 如何:将文本写入文件 | 
| 写入文本文件。 | 如何:将文本写入文件 | 
| 从文本文件读取。 | 如何:从文件中读取文本 | 
| 将文本追加到文件。 | 如何:打开并追加到日志文件 File.AppendText FileInfo.AppendText | 
| 获取文件的大小。 | FileInfo.Length | 
| 获取文件的属性。 | File.GetAttributes | 
| 设置文件的属性。 | File.SetAttributes | 
| 确定文件是否存在。 | File.Exists | 
| 从二进制文件读取。 | 如何:对新建的数据文件进行读取和写入 | 
| 写入二进制文件。 | 如何:对新建的数据文件进行读取和写入 | 
构造函数
| StringReader(String) | 初始化从指定字符串进行读取的 StringReader 类的新实例。 | 
方法
| Close() | 关闭 StringReader。 | 
| Close() | 关闭 TextReader 并释放与该  | 
| CreateObjRef(Type) | 创建一个对象,该对象包含生成用于与远程对象进行通信的代理所需的全部相关信息。(继承自 MarshalByRefObject) | 
| Dispose() | 释放由 TextReader 对象使用的所有资源。(继承自 TextReader) | 
| Dispose(Boolean) | 释放由 StringReader 占用的非托管资源,还可以另外再释放托管资源。 | 
| Equals(Object) | 确定指定对象是否等于当前对象。(继承自 Object) | 
| GetHashCode() | 作为默认哈希函数。(继承自 Object) | 
| GetLifetimeService() | 
		已过时.
	 检索控制此实例的生存期策略的当前生存期服务对象。(继承自 MarshalByRefObject) | 
| GetType() | 获取当前实例的 Type。(继承自 Object) | 
| InitializeLifetimeService() | 
		已过时.
	 获取生存期服务对象来控制此实例的生存期策略。(继承自 MarshalByRefObject) | 
| MemberwiseClone() | 创建当前 Object 的浅表副本。(继承自 Object) | 
| MemberwiseClone(Boolean) | 创建当前 MarshalByRefObject 对象的浅表副本。(继承自 MarshalByRefObject) | 
| Peek() | 返回下一个可用字符,但不使用它。 | 
| Read() | 读取输入字符串中的下一个字符并将该字符的位置提升一个字符。 | 
| Read(Char[], Int32, Int32) | 读取输入字符串中的字符块,并将字符位置提升  | 
| Read(Span<Char>) | 从当前位置开始读取输入字符串中的所有字符,并将当前位置移到输入字符串的末尾。 | 
| Read(Span<Char>) | 从当前读取器中读取字符,并将数据写入指定的缓冲区。(继承自 TextReader) | 
| ReadAsync(Char[], Int32, Int32) | 异步从当前字符串中读取指定数目的字符并从指定索引开始将该数据写入缓冲区。 | 
| ReadAsync(Char[], Int32, Int32) | 异步从当前文本读取器中读取指定最大字符数并从指定索引开始将该数据写入缓冲区。(继承自 TextReader) | 
| ReadAsync(Memory<Char>, CancellationToken) | 从当前位置开始异步读取输入字符串中的所有字符,并将当前位置移到输入字符串的末尾。 | 
| ReadAsync(Memory<Char>, CancellationToken) | 将当前流中的字符异步读入内存块。(继承自 TextReader) | 
| ReadBlock(Char[], Int32, Int32) | 从当前文本读取器中读取指定的最大字符数并从指定索引处开始将该数据写入缓冲区。(继承自 TextReader) | 
| ReadBlock(Span<Char>) | 从当前位置开始读取输入字符串中的所有字符,并将当前位置移到输入字符串的末尾。 | 
| ReadBlock(Span<Char>) | 从当前流中读取字符并将数据写入缓冲区。(继承自 TextReader) | 
| ReadBlockAsync(Char[], Int32, Int32) | 异步从当前字符串中读取指定数目的字符并从指定索引开始将该数据写入缓冲区。 | 
| ReadBlockAsync(Char[], Int32, Int32) | 异步从当前文本读取器中读取指定最大字符数并从指定索引开始将该数据写入缓冲区。(继承自 TextReader) | 
| ReadBlockAsync(Memory<Char>, CancellationToken) | 从当前位置开始异步读取输入字符串中的所有字符,并将当前位置移到输入字符串的末尾。 | 
| ReadBlockAsync(Memory<Char>, CancellationToken) | 从当前流中异步读取字符并将数据写入缓冲区。(继承自 TextReader) | 
| ReadLine() | 从当前字符串中读取一行字符并将数据作为字符串返回。 | 
| ReadLineAsync() | 从当前字符串中异步读取一行字符并将数据作为字符串返回。 | 
| ReadLineAsync() | 异步读取一行字符并将数据作为字符串返回。(继承自 TextReader) | 
| ReadLineAsync(CancellationToken) | 从当前字符串中异步读取一行字符并将数据作为字符串返回。 | 
| ReadLineAsync(CancellationToken) | 异步读取一行字符并将数据作为字符串返回。(继承自 TextReader) | 
| ReadToEnd() | 读取从当前位置到字符串的结尾的所有字符并将它们作为单个字符串返回。 | 
| ReadToEndAsync() | 异步读取从当前位置到字符串的结尾的所有字符并将它们作为单个字符串返回。 | 
| ReadToEndAsync() | 异步读取从当前位置到文本读取器末尾的所有字符并将它们作为一个字符串返回。(继承自 TextReader) | 
| ReadToEndAsync(CancellationToken) | 异步读取从当前位置到字符串的结尾的所有字符并将它们作为单个字符串返回。 | 
| ReadToEndAsync(CancellationToken) | 异步读取从当前位置到文本读取器末尾的所有字符并将它们作为一个字符串返回。(继承自 TextReader) | 
| ToString() | 返回表示当前对象的字符串。(继承自 Object) | 
显式接口实现
| IDisposable.Dispose() | 有关此成员的说明,请参见 Dispose()。(继承自 TextReader) |