MemoryStream.Read Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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>)
- Origem:
- MemoryStream.cs
- Origem:
- MemoryStream.cs
- Origem:
- MemoryStream.cs
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
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
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)
- Origem:
- MemoryStream.cs
- Origem:
- MemoryStream.cs
- Origem:
- MemoryStream.cs
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
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 qual buffer
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 será 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 para Read
, o 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.