BinaryReader 类
用特定的编码将基元数据类型读作二进制值。命名空间:System.IO;程序集:System.Runtime.dll
public class BinaryReader : IDisposable
BinaryReader类提供简化从流中读取基元数据类型的方法。 例如,可以使用 ReadBoolean 方法将下一个字节作为布尔值读取,并将流中的当前位置提升一个字节。 类包含支持不同数据类型的 read 方法。
构造函数
BinaryReader(Stream) | 基于所指定的流和特定的 UTF-8 编码,初始化 BinaryReader 类的新实例。 |
BinaryReader(Stream, Encoding) | 基于所指定的流和特定的字符编码,初始化 BinaryReader 类的新实例。 |
BinaryReader(Stream, Encoding, Boolean) | 基于所提供的流和特定的字符编码,初始化 BinaryReader 类的新实例,有选择性的打开流。 |
在创建类的新实例时 BinaryReader ,提供从中读取的流,还可以选择指定编码的类型以及是否在释放对象后保持流处于打开状态 BinaryReader 。 如果未指定编码类型,将使用 UTF-8。
属性
BaseStream | 公开对 BinaryReader 的基础流的访问。 |
与 BinaryReader
关联的基础流。提供了以下方法:
bool CanRead、bool CanSeek、bool CanTimeout、bool CanWrite、long Length(文件的长度)、long Position(读取文件的当前指针位置)、int ReadTimeout、int WriteTimeout
注意:在读取或使用时使用基础流 BinaryReader
可能会导致数据丢失和损坏。 例如,可能会多次读取相同的字节,可能会跳过字节或字符读取。
方法
Close() | 关闭当前阅读器及基础流。 |
Dispose() | 释放 BinaryReader 类的当前实例所使用的所有资源。 |
Dispose(Boolean) | 释放 BinaryReader 类使用的非托管资源,并可以选择释放托管资源。 |
Equals(Object) | 确定指定对象是否等于当前对象。 (继承自 Object) |
FillBuffer(Int32) | 用从流中读取的指定字节数填充内部缓冲区。 |
GetHashCode() | 作为默认哈希函数。 (继承自 Object) |
GetType() | 获取当前实例的 Type。 (继承自 Object) |
MemberwiseClone() | 创建当前 Object 的浅表副本。 (继承自 Object) |
PeekChar() | 返回下一个可用的字符,并且不提升字节或字符的位置。 |
Read() | 从基础流中读取字符,并根据所使用的 |
Read(Byte[], Int32, Int32) | 从字节数组中的指定点开始,从流中读取指定的字节数。 |
Read(Char[], Int32, Int32) | 从字符数组中的指定点开始,从流中读取指定的字符数。 |
Read(Span<Byte>) | 从当前流读取字节序列,并将流中的位置向前移动读取的字节数。 |
Read(Span<Char>) | 从当前流中读取与提供的缓冲区长度相同的字符数,将其写入提供的缓冲区,然后根据所使用的 |
Read7BitEncodedInt() | 以压缩格式读入 32 位整数。 |
Read7BitEncodedInt64() | 一次读取一个 7 位数字。 |
ReadBoolean() | 从当前流中读取 |
ReadByte() | 从当前流中读取下一个字节,并使流的当前位置提升 1 个字节。 |
ReadBytes(Int32) | 从当前流中读取指定的字节数以写入字节数组中,并将当前位置前移相应的字节数。 |
ReadChar() | 从当前流中读取下一个字符,并根据所使用的 |
ReadChars(Int32) | 从当前流中读取指定的字符数,并以字符数组的形式返回数据,然后根据所使用的 |
ReadDecimal() | 从当前流中读取十进制数值,并将该流的当前位置提升十六个字节。 |
ReadDouble() | 从当前流中读取 8 字节浮点值,并使流的当前位置提升 8 个字节。 |
ReadInt16() | 从当前流中读取 2 字节有符号整数,并使流的当前位置提升 2 个字节。 |
ReadInt32() | 从当前流中读取 4 字节有符号整数,并使流的当前位置提升 4 个字节。 |
ReadInt64() | 从当前流中读取 8 字节有符号整数,并使流的当前位置提升 8 个字节。 |
ReadSByte() | 从此流中读取 1 个有符号字节,并使流的当前位置提升 1 个字节。 |
ReadSingle() | 从当前流中读取 4 字节浮点值,并使流的当前位置提升 4 个字节。 |
ReadString() | 从当前流中读取一个字符串。 字符串有长度前缀,一次 7 位地被编码为整数。 |
ReadUInt16() | 使用 Little-Endian 编码从当前流中读取 2 字节无符号整数,并将流的位置提升 2 个字节。 |
ReadUInt32() | 从当前流中读取 4 字节无符号整数并使流的当前位置提升 4 个字节。 |
ReadUInt64() | 从当前流中读取 8 字节无符号整数并使流的当前位置提升 8 个字节。 |
ToString() | 返回表示当前对象的字符串。 (继承自 Object) |