IAsynchronousByteChannel.Read Método

Definição

Sobrecargas

Nome Description
Read(ByteBuffer)

Lê uma sequência de bytes desse canal no buffer fornecido.

Read(ByteBuffer, Object, ICompletionHandler)

Lê uma sequência de bytes desse canal no buffer fornecido.

Read(ByteBuffer)

Lê uma sequência de bytes desse canal no buffer fornecido.

[Android.Runtime.Register("read", "(Ljava/nio/ByteBuffer;)Ljava/util/concurrent/Future;", "GetRead_Ljava_nio_ByteBuffer_Handler:Java.Nio.Channels.IAsynchronousByteChannelInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", ApiSince=26)]
public Java.Util.Concurrent.IFuture? Read(Java.Nio.ByteBuffer? dst);
[<Android.Runtime.Register("read", "(Ljava/nio/ByteBuffer;)Ljava/util/concurrent/Future;", "GetRead_Ljava_nio_ByteBuffer_Handler:Java.Nio.Channels.IAsynchronousByteChannelInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", ApiSince=26)>]
abstract member Read : Java.Nio.ByteBuffer -> Java.Util.Concurrent.IFuture

Parâmetros

dst
ByteBuffer

O buffer para o qual os bytes devem ser transferidos

Retornos

Um futuro que representa o resultado da operação

Atributos

Comentários

Lê uma sequência de bytes desse canal no buffer fornecido.

Esse método inicia uma operação de leitura assíncrona para ler uma sequência de bytes desse canal no buffer fornecido. O método se comporta exatamente da mesma maneira que o #read(ByteBuffer,Object,CompletionHandler) read(ByteBuffer,Object,CompletionHandler) método, exceto que, em vez de especificar um manipulador de conclusão, esse método retorna um Future resultado que representa o resultado pendente. O Futuremétodo 's Future#get() get retorna o número de bytes lidos ou -1 se nenhum bytes pode ser lido porque o canal atingiu o fim do fluxo.

Java documentação para java.nio.channels.AsynchronousByteChannel.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.

Aplica-se a

Read(ByteBuffer, Object, ICompletionHandler)

Lê uma sequência de bytes desse canal no buffer fornecido.

[Android.Runtime.Register("read", "(Ljava/nio/ByteBuffer;Ljava/lang/Object;Ljava/nio/channels/CompletionHandler;)V", "GetRead_Ljava_nio_ByteBuffer_Ljava_lang_Object_Ljava_nio_channels_CompletionHandler_Handler:Java.Nio.Channels.IAsynchronousByteChannelInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", ApiSince=26)]
[Java.Interop.JavaTypeParameters(new System.String[] { "A" })]
public void Read(Java.Nio.ByteBuffer? dst, Java.Lang.Object? attachment, Java.Nio.Channels.ICompletionHandler? handler);
[<Android.Runtime.Register("read", "(Ljava/nio/ByteBuffer;Ljava/lang/Object;Ljava/nio/channels/CompletionHandler;)V", "GetRead_Ljava_nio_ByteBuffer_Ljava_lang_Object_Ljava_nio_channels_CompletionHandler_Handler:Java.Nio.Channels.IAsynchronousByteChannelInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", ApiSince=26)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "A" })>]
abstract member Read : Java.Nio.ByteBuffer * Java.Lang.Object * Java.Nio.Channels.ICompletionHandler -> unit

Parâmetros

dst
ByteBuffer

O buffer para o qual os bytes devem ser transferidos

attachment
Object

O objeto a ser anexado à operação de E/S; pode ser null

handler
ICompletionHandler

O manipulador de conclusão

Atributos

Comentários

Lê uma sequência de bytes desse canal no buffer fornecido.

Esse método inicia uma operação de leitura assíncrona para ler uma sequência de bytes desse canal no buffer fornecido. O handler parâmetro é um manipulador de conclusão que é invocado quando a operação de leitura é concluída (ou falha). O resultado passado para o manipulador de conclusão é o número de bytes lidos ou -1 se nenhum bytes puder ser lido porque o canal atingiu o fim do fluxo.

A operação de leitura pode 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 a leitura é tentada. Onde r é 0, a operação de leitura é concluída imediatamente com o resultado de sem iniciar uma operação de 0 E/S.

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 - 1, onde p é a posição do buffer no momento em que a leitura é executada. Após a conclusão, a posição do buffer será igual a p +  n; seu limite não terá sido alterado.

Os buffers não são seguros para uso por vários threads simultâneos, portanto, deve-se tomar cuidado para não acessar o buffer até que a operação seja concluída.

Esse método pode ser invocado a qualquer momento. Alguns tipos de canal podem não permitir que mais de uma leitura seja excelente em um determinado momento. Se um thread iniciar uma operação de leitura antes da conclusão de uma operação de leitura anterior, uma ReadPendingException operação será lançada.

Java documentação para java.nio.channels.AsynchronousByteChannel.read(java.nio.ByteBuffer, A, java.nio.channels.CompletionHandler<java.lang.Integer, ? super A>).

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.

Aplica-se a