IAsynchronousByteChannel.Read Метод

Определение

Перегрузки

Имя Описание
Read(ByteBuffer)

Считывает последовательность байтов из этого канала в заданный буфер.

Read(ByteBuffer, Object, ICompletionHandler)

Считывает последовательность байтов из этого канала в заданный буфер.

Read(ByteBuffer)

Считывает последовательность байтов из этого канала в заданный буфер.

[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

Параметры

dst
ByteBuffer

Буфер, в который передаются байты

Возвращаемое значение

Будущее, представляющее результат операции

Атрибуты

Комментарии

Считывает последовательность байтов из этого канала в заданный буфер.

Этот метод инициирует асинхронную операцию чтения для чтения последовательности байтов из этого канала в заданный буфер. Метод ведет себя точно так же, как #read(ByteBuffer,Object,CompletionHandler) read(ByteBuffer,Object,CompletionHandler) метод, за исключением того, что вместо указания обработчика завершения этот метод возвращает Future ожидающий результат. Future Метод Future#get() getвозвращает количество байтов, прочитанных или -1 если байты не могут быть прочитаны, так как канал достиг конца потока.

Java документации по java.nio.channels.AsynchronousByteChannel.read(java.nio.ByteBuffer).

Части этой страницы — это изменения на основе работы, созданной и общей Project и используемых в соответствии с условиями, описанными в разделе "".

Применяется к

Read(ByteBuffer, Object, ICompletionHandler)

Считывает последовательность байтов из этого канала в заданный буфер.

[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

Параметры

dst
ByteBuffer

Буфер, в который передаются байты

attachment
Object

Объект для подключения к операции ввода-вывода; может быть null

handler
ICompletionHandler

Обработчик завершения

Атрибуты

Комментарии

Считывает последовательность байтов из этого канала в заданный буфер.

Этот метод инициирует асинхронную операцию чтения для чтения последовательности байтов из этого канала в заданный буфер. Параметр handler — это обработчик завершения, который вызывается при завершении операции чтения (или завершается сбоем). Результатом, переданным обработчику завершения, является число байтов, считываемых или -1 если байты не могут быть прочитаны, так как канал достиг конца потока.

Операция чтения может считывать до байтов из канала, где r — это число байтов, оставшихся в буфере, то есть dst.remaining() во время попытки чтения. Где значение r равно 0, операция чтения завершается немедленно с результатом 0 без запуска операции ввода-вывода.

Предположим, что считывается последовательность байтов длины n , где 0><> n><=> r. Эта последовательность байтов будет передана в буфер, чтобы первый байт в последовательности был на индексе p , а последний байт находится в индексе p +> n>->1, где p — это позиция буфера в момент выполнения операции чтения. По завершении позиция буфера будет равна p +> n; его ограничение не изменится.

Буферы небезопасны для использования несколькими параллельными потоками, поэтому необходимо принять меры, чтобы не получить доступ к буферу до завершения операции.

Этот метод может вызываться в любое время. Некоторые типы каналов могут не разрешать несколько операций чтения в любое время. Если поток инициирует операцию чтения до завершения предыдущей операции чтения, ReadPendingException создается исключение.

Java документации по java.nio.channels.AsynchronousByteChannel.read(java.nio.ByteBuffer, A, java.nio.channels.CompletionHandler<java.lang.Integer, ? super A>).

Части этой страницы — это изменения на основе работы, созданной и общей Project и используемых в соответствии с условиями, описанными в разделе "".

Применяется к