InputStream.ReadNBytes 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
ReadNBytes(Int32) |
Lê até um número especificado de bytes do fluxo de entrada. |
ReadNBytes(Byte[], Int32, Int32) |
Lê o número solicitado de bytes do fluxo de entrada para a matriz de bytes fornecida. |
ReadNBytes(Int32)
Lê até um número especificado de bytes do fluxo de entrada.
[Android.Runtime.Register("readNBytes", "(I)[B", "GetReadNBytes_IHandler", ApiSince=33)]
public virtual byte[]? ReadNBytes (int len);
[<Android.Runtime.Register("readNBytes", "(I)[B", "GetReadNBytes_IHandler", ApiSince=33)>]
abstract member ReadNBytes : int -> byte[]
override this.ReadNBytes : int -> byte[]
Parâmetros
- len
- Int32
O número máximo de bytes a serem lidos
Retornos
Uma matriz de bytes que contém os bytes lidos desse fluxo de entrada
- Atributos
Comentários
Lê até um número especificado de bytes do fluxo de entrada. Esse método bloqueia até que o número solicitado de bytes tenha sido lido, o fim do fluxo seja detectado ou uma exceção seja lançada. Esse método não fecha o fluxo de entrada.
O comprimento da matriz retornada é igual ao número de bytes lidos do fluxo. Se len
for zero, nenhum byte será lido e uma matriz de bytes vazia será retornada. Caso contrário, até len
bytes são lidos do fluxo. Menos de bytes podem ser lidos len
se o fim do fluxo for encontrado.
Quando esse fluxo atingir o fim do fluxo, outras invocações desse método retornarão uma matriz de bytes vazia.
Observe que esse método destina-se a casos simples em que é conveniente ler o número especificado de bytes em uma matriz de bytes. A quantidade total de memória alocada por esse método é proporcional ao número de bytes lidos do fluxo que é limitado por len
. Portanto, o método pode ser chamado com segurança com valores muito grandes de len
desde que haja memória suficiente disponível.
O comportamento para o caso em que o fluxo de entrada é fechado de forma assíncrona, ou o thread interrompido durante a leitura, é altamente específico do fluxo de entrada e, portanto, não especificado.
Se ocorrer um erro de E/S lendo a partir do fluxo de entrada, ele poderá fazê-lo depois que alguns, mas não todos, bytes tiverem sido lidos. Consequentemente, o fluxo de entrada pode não estar no final do fluxo e pode estar em um estado inconsistente. É altamente recomendável que o fluxo seja fechado imediatamente se ocorrer um erro de E/S.
Adicionado em 11.
Documentação Java para java.io.InputStream.readNBytes(int)
.
Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Android Open Source Project e usado de acordo com os termos descritos na Creative Commons 2.5 Attribution License.
Aplica-se a
ReadNBytes(Byte[], Int32, Int32)
Lê o número solicitado de bytes do fluxo de entrada para a matriz de bytes fornecida.
[Android.Runtime.Register("readNBytes", "([BII)I", "GetReadNBytes_arrayBIIHandler", ApiSince=33)]
public virtual int ReadNBytes (byte[]? b, int off, int len);
[<Android.Runtime.Register("readNBytes", "([BII)I", "GetReadNBytes_arrayBIIHandler", ApiSince=33)>]
abstract member ReadNBytes : byte[] * int * int -> int
override this.ReadNBytes : byte[] * int * int -> int
Parâmetros
- b
- Byte[]
A matriz de bytes na qual os dados são lidos
- off
- Int32
o deslocamento inicial no b
qual os dados são gravados
- len
- Int32
O número máximo de bytes a serem lidos
Retornos
O número real de bytes lidos no buffer
- Atributos
Comentários
Lê o número solicitado de bytes do fluxo de entrada para a matriz de bytes fornecida. Esse método bloqueia até que len
bytes de dados de entrada tenham sido lidos, o fim do fluxo seja detectado ou uma exceção seja lançada. O número de bytes realmente lidos, possivelmente zero, é retornado. Esse método não fecha o fluxo de entrada.
No caso em que o fim do fluxo é atingido antes len
que os bytes tenham sido lidos, o número real de bytes lidos será retornado. Quando esse fluxo atingir o fim do fluxo, outras invocações desse método retornarão zero.
Se len
for zero, nenhum byte é lido e 0
é retornado, caso contrário, há uma tentativa de ler até len
bytes.
O primeiro byte lido é armazenado no elemento b[off]
, o próximo em , b[off+1]
e assim por diante. O número de bytes lidos é, no máximo, igual a len
. Seja k o número de bytes realmente lidos, esses bytes serão armazenados em elementos b[off]
através de b[off+
k, deixando os elementos b[off+
k]
através de b[off+len-1]
inalterados.-1]
O comportamento para o caso em que o fluxo de entrada é fechado de forma assíncrona, ou o thread interrompido durante a leitura, é altamente específico do fluxo de entrada e, portanto, não especificado.
Se ocorrer um erro de E/S lendo o fluxo de entrada, ele poderá fazê-lo depois que alguns, mas não todos, bytes de b
foram atualizados com dados do fluxo de entrada. Consequentemente, o fluxo de entrada e b
pode estar em um estado inconsistente. É altamente recomendável que o fluxo seja fechado imediatamente se ocorrer um erro de E/S.
Adicionado em 9.
Documentação Java para java.io.InputStream.readNBytes(byte[], int, int)
.
Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Android Open Source Project e usado de acordo com os termos descritos na Creative Commons 2.5 Attribution License.