IReadableByteChannel.Read(ByteBuffer) 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.
Lê uma sequência de bytes desse canal no buffer fornecido.
[Android.Runtime.Register("read", "(Ljava/nio/ByteBuffer;)I", "GetRead_Ljava_nio_ByteBuffer_Handler:Java.Nio.Channels.IReadableByteChannelInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")]
public int Read(Java.Nio.ByteBuffer? dst);
[<Android.Runtime.Register("read", "(Ljava/nio/ByteBuffer;)I", "GetRead_Ljava_nio_ByteBuffer_Handler:Java.Nio.Channels.IReadableByteChannelInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")>]
abstract member Read : Java.Nio.ByteBuffer -> int
Parâmetros
- dst
- ByteBuffer
O buffer para o qual os bytes devem ser transferidos
Retornos
O número de bytes lidos, possivelmente zero ou -1 se o canal atingiu o fim do fluxo
- Atributos
Exceções
se outro thread fechar o canal durante a leitura.
se outro thread interromper o thread de chamada enquanto a operação estiver em andamento. O estado de interrupção do thread de chamada é definido e o canal é fechado.
se o canal estiver fechado.
outro erro de E/S ocorre, os detalhes estão na mensagem.
se o canal não foi aberto para leitura.
Comentários
Lê uma sequência de bytes desse canal no buffer fornecido.
É feita uma tentativa de ler até r bytes do canal, em que r é o número de bytes restantes no buffer, ou seja, dst.remaining()no momento em que esse método é invocado.
Suponha que uma sequência de bytes de comprimento n seja lida, em 0que <= n <= r. Essa sequência de bytes será transferida para o buffer para que o primeiro byte na sequência esteja no índice p e o último byte esteja no índice p + n - , em que1p é a posição do buffer no momento em que esse método é invocado. Ao retornar, a posição do buffer será igual a p + n; seu limite não terá sido alterado.
Uma operação de leitura pode não preencher o buffer e, na verdade, pode não ler nenhum bytes. Se isso depende ou não da natureza e do estado do canal. Um canal de soquete no modo de não bloqueio, por exemplo, não pode ler mais bytes do que está disponível imediatamente no buffer de entrada do soquete; da mesma forma, um canal de arquivo não pode ler mais bytes do que permanecer no arquivo. No entanto, é garantido que, se um canal estiver no modo de bloqueio e houver pelo menos um byte restante no buffer, esse método será bloqueado até que pelo menos um byte seja lido.
Esse método pode ser invocado a qualquer momento. No entanto, se outro thread já tiver iniciado uma operação de leitura nesse canal, uma invocação desse método será bloqueada até que a primeira operação seja concluída.
Java documentação para java.nio.channels.ReadableByteChannel.read(java.nio.ByteBuffer).
Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.