C# TextReader.Read – 读取一个字符

  • Post category:C#

C# 的 TextReader.Read 方法用于从文本读取器中同步读取一个字符。此方法会阻塞当前线程,直到有字符可供读取。

该方法的完整签名如下:

public virtual int Read();

方法返回值类型为 int,返回值为表示读取的字符的 Unicode 编码。若文本读取器到达流的末尾,返回值将为 -1。

TextReader.Read 方法的使用方法一般与 StreamReader 类一起使用。以下是一个使用该函数读取文本文件并输出其内容的示例代码:

using (StreamReader reader = new StreamReader("file.txt"))
{
    int nextChar;
    while ((nextChar = reader.Read()) != -1)
    {
        Console.Write((char)nextChar); // 逐字符输出
    }
}

在该示例中,首先使用 StreamReader 打开了一个名为 “file.txt” 的文本文件并实例化一个文本阅读器。然后使用 while 循环对文本内每个字符逐个进行读取,每读取一个字符都会将其转换为 char 类型并输出。

下面是另一个示例。该示例演示了如何从 Console.In 中读取用户输入的字符串并输出第一个字符。

using (TextReader reader = Console.In)
{
    int nextChar = reader.Read(); // 读取第一个字符
    Console.WriteLine("第一个字符为:" + (char)nextChar);
}

在该示例中,我们实例化了一个文本阅读器并将其赋值为 Console.In,表示从标准输入中进行读取。然后通过 reader.Read 方法读取了输入字符串的第一个字符,并进行输出。

总之,TextReader.Read 方法是 .NET 内置类库中用于同步读取字符的重要函数,在读取器的使用过程中需特别注意其中包含的阻塞性质。