MemoryStream.Read 方法

定义

重载

Read(Span<Byte>)

从当前内存流读取字节序列,并将内存流中的位置向前移动读取的字节数。

Read(Byte[], Int32, Int32)

从当前流中读取字节块并将数据写入缓冲区。

Read(Span<Byte>)

Source:
MemoryStream.cs
Source:
MemoryStream.cs
Source:
MemoryStream.cs

从当前内存流读取字节序列,并将内存流中的位置向前移动读取的字节数。

public:
 override int Read(Span<System::Byte> destination);
public:
 override int Read(Span<System::Byte> buffer);
public override int Read (Span<byte> destination);
public override int Read (Span<byte> buffer);
override this.Read : Span<byte> -> int
override this.Read : Span<byte> -> int
Public Overrides Function Read (destination As Span(Of Byte)) As Integer
Public Overrides Function Read (buffer As Span(Of Byte)) As Integer

参数

destinationbuffer
Span<Byte>

内存的区域。 当此方法返回时,此范围的内容将替换为从当前内存流源读取的字节。

返回

读入缓冲区中的总字节数。 如果很多字节当前不可用,则这可小于在缓冲区中分配的字节数;如果已到达内存流结尾,则为零 (0)。

适用于

Read(Byte[], Int32, Int32)

Source:
MemoryStream.cs
Source:
MemoryStream.cs
Source:
MemoryStream.cs

从当前流中读取字节块并将数据写入缓冲区。

public:
 override int Read(cli::array <System::Byte> ^ buffer, int offset, int count);
public override int Read (byte[] buffer, int offset, int count);
override this.Read : byte[] * int * int -> int
Public Overrides Function Read (buffer As Byte(), offset As Integer, count As Integer) As Integer

参数

buffer
Byte[]

当此方法返回时,包含指定的字节数组,此数组中 offset 和 (offset + count - 1) 之间的值被从当前流中读取的字符所替换。

offset
Int32

buffer 中的从零开始的字节偏移量,从此处开始存储当前流中的数据。

count
Int32

最多读取的字节数。

返回

写入缓冲区中的总字节数。 如果字节数当前不可用,则总字节数可能小于所请求的字节数;如果在读取到任何字节前已到达流结尾,则为零。

例外

buffernull

offsetcount 为负数。

缓冲区长度减去 offset 的结果小于 count

当前流实例已关闭。

示例

此代码示例是为 MemoryStream 类提供的一个更大示例的一部分。

// Read the first 20 bytes from the stream.
byteArray = gcnew array<Byte>(memStream->Length);
count = memStream->Read( byteArray, 0, 20 );
// Read the first 20 bytes from the stream.
byteArray = new byte[memStream.Length];
count = memStream.Read(byteArray, 0, 20);
' Read the first 20 bytes from the stream.
byteArray = _
    New Byte(CType(memStream.Length, Integer)){}
count = memStream.Read(byteArray, 0, 20)

注解

此方法重写 Read

offset参数提供当前流中的数据写入到的第一个字节buffer的偏移量。 参数 count 提供从当前流读取的最大字节数。 返回的值是实际读取的字节数,如果到达流的末尾,则返回的值为零。

如果读取操作成功,则流中的当前位置将按读取的字节数前进。 如果发生异常,则流中的当前位置保持不变。

Read仅当到达流的末尾时,方法才会返回零。 在所有其他情况下, Read 始终在返回之前从流中至少读取一个字节。 根据定义,如果在调用 Read时流中没有数据可用,则 Read 该方法返回零, (流) 自动到达流的末尾。 实现可以自由地返回比请求的字节少,即使尚未到达流的末尾。

用于 BinaryReader 读取基元数据类型。

注意

如果在 参数中指定的 buffer 字节数组是 方法返回 GetBuffer 的基础缓冲区,则会覆盖数组内容,并且不会引发异常。

另请参阅

适用于