MemoryStream.Read Método

Definição

Sobrecargas

Nome Description
Read(Span<Byte>)

Lê uma sequência de bytes do fluxo de memória atual e avança a posição dentro do fluxo de memória pelo número de bytes lidos.

Read(Byte[], Int32, Int32)

Lê um bloco de bytes do fluxo atual e grava os dados em um buffer.

Read(Span<Byte>)

Lê uma sequência de bytes do fluxo de memória atual e avança a posição dentro do fluxo de memória pelo número de bytes lidos.

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

Parâmetros

destinationbuffer
Span<Byte>

Uma região de memória. Quando esse método retorna, o conteúdo desse intervalo é substituído pelos bytes lidos da fonte do fluxo de memória atual.

Retornos

O número total de bytes lidos no buffer. Isso pode ser menor do que o número de bytes alocados no buffer se muitos bytes não estiverem disponíveis no momento ou zero (0) se o final do fluxo de memória tiver sido atingido.

Aplica-se a

Read(Byte[], Int32, Int32)

Lê um bloco de bytes do fluxo atual e grava os dados em um buffer.

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

Parâmetros

buffer
Byte[]

Quando esse método é retornado, contém a matriz de bytes especificada com os valores entre offset e (offset + count - 1) substituídos pelos caracteres lidos do fluxo atual.

offset
Int32

O deslocamento de bytes baseado em zero no buffer qual começar a armazenar dados do fluxo atual.

count
Int32

O número máximo de bytes a serem lidos.

Retornos

O número total de bytes gravados no buffer. Isso pode ser menor do que o número de bytes solicitados se esse número de bytes não estiver disponível no momento ou zero se o final do fluxo for atingido antes de qualquer bytes ser lido.

Exceções

buffer é null.

offset ou count é negativo.

offset subtraído do comprimento do buffer é menor que count.

A instância de fluxo atual está fechada.

Exemplos

Este exemplo de código faz parte de um exemplo maior fornecido para a MemoryStream classe.

// 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)

Comentários

Este método substitui Read.

O offset parâmetro fornece o deslocamento do primeiro byte no buffer qual os dados do fluxo atual são gravados. O count parâmetro fornece o número máximo de bytes a serem lidos do fluxo atual. O valor retornado é o número real de bytes lidos ou zero se o final do fluxo for atingido.

Se a operação de leitura for bem-sucedida, a posição atual no fluxo avançará pelo número de bytes lidos. Se ocorrer uma exceção, a posição atual dentro do fluxo permanecerá inalterada.

O Read método retornará zero somente se o final do fluxo for atingido. Em todos os outros casos, Read sempre lê pelo menos um byte do fluxo antes de retornar. Por definição, se nenhum dado estiver disponível no fluxo após uma chamada, Reado Read método retornará zero (o final do fluxo será atingido automaticamente). Uma implementação é livre para retornar menos bytes do que o solicitado, mesmo que o final do fluxo não tenha sido atingido.

Use BinaryReader para ler tipos de dados primitivos.

Caution

Se a matriz de bytes especificada no buffer parâmetro for o buffer subjacente retornado pelo GetBuffer método, o conteúdo da matriz será substituído e nenhuma exceção será gerada.

Confira também

Aplica-se a