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 создается исключение.
Части этой страницы — это изменения на основе работы, созданной и общей Project и используемых в соответствии с условиями, описанными в разделе "".