System.IO.BinaryReader.ReadChars 方法

方法描述

从当前流中读取指定的字符数,并以字符数组的形式返回数据,然后根据所使用的 Encoding 和从流中读取的特定字符,将当前位置前移。

语法定义(C# System.IO.BinaryReader.ReadChars 方法 的用法)

public virtual char[] ReadChars(
	int count
)

参数/返回值

参数值/返回值 参数类型/返回类型 参数描述/返回描述
count System-Int32 要读取的字符数。
返回值 System.Char[] 包含从基础流中读取的数据的字节数组。 如果到达了流的末尾,则该字符数组可能小于所请求的字符数。

提示和注释

BinaryReader 在读取操作失败后不会还原文件位置。

当读取网络流时,在某些罕见的情况下,ReadChars 方法可能从流读取额外的字符,如果 BinaryReader 使用 Unicode 编码构造而成。 如果发生这种情况,可以使用 ReadBytes 方法读取一个固定长度的字节数组,然后将该数组传递到 ReadChars 方法。

System.IO.BinaryReader.ReadChars 方法例子

下面的代码示例说明如何通过将内存用作备份来读取和写入数据。

using System;
using System.IO;

class BinaryRW
{
    static void Main()
    {
        char[] invalidPathChars = Path.InvalidPathChars;
        MemoryStream memStream = new MemoryStream();
        BinaryWriter binWriter = new BinaryWriter(memStream);

        // Write to memory.
        binWriter.Write("Invalid file path characters are: ");
        binWriter.Write(Path.InvalidPathChars);

        // Create the reader using the same MemoryStream 
        // as used with the writer.
        BinaryReader binReader = new BinaryReader(memStream);

        // Set Position to the beginning of the stream.
        memStream.Position = 0;

        // Read the data from memory and write it to the console.
        Console.Write(binReader.ReadString());
        Console.WriteLine(binReader.ReadChars(
            (int)(memStream.Length - memStream.Position)));
    }
}

异常

异常 异常描述
ArgumentException 要读取的解码字符数大于 count。 如果 Unicode 解码器返回回退字符或代理项对,则可能发生此情况。
ObjectDisposedException 流已关闭。
IOException 发生 I/O 错误。
ArgumentOutOfRangeException count 为负。

命名空间

namespace: System.IO

程序集: mscorlib(在 mscorlib.dll 中)

版本信息

.NET Framework 受以下版本支持:4、3.5、3.0、2.0、1.1、1.0 .NET Framework Client Profile 受以下版本支持:4、3.5 SP1 受以下版本支持:

适用平台

Windows 7, Windows Vista SP1 或更高版本, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008(不支持服务器核心), Windows Server 2008 R2(支持 SP1 或更高版本的服务器核心), Windows Server 2003 SP2 .NET Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求。