MemoryStream.Read Método

Definição

Sobrecargas

Read(Span<Byte>)

Lê uma sequência de bytes do fluxo de memória atual e avança a posição no fluxo de memória até o 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 no fluxo de memória até o número de bytes lidos.

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

Parâmetros

destinationbuffer
Span<Byte>

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

Retornos

Int32

O número total de bytes lidos do buffer. Isso poderá ser menor que o número de bytes alocados no buffer se esses muitos bytes não estiverem disponíveis no momento ou poderá ser 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 retorna, 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 em buffer no qual será iniciado o armazenamento de dados no fluxo atual.

count
Int32

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

Retornos

Int32

O número total de bytes gravados no buffer. Isso poderá ser menor que o número de bytes solicitado se esse número de bytes não estiver disponível no momento, ou zero se o final do fluxo for atingido antes que os bytes sejam lidos.

Exceções

buffer é null.

offset ou count é negativo.

O offset subtraído do tamanho do buffer é menor que count.

A instância atual do fluxo 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 = 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)

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 dentro do 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.

Cuidado

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