IReadableByteChannel.Read(ByteBuffer) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Считывает последовательность байтов из этого канала в заданный буфер.
[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
Параметры
- dst
- ByteBuffer
Буфер, в который передаются байты
Возвращаемое значение
Число операций чтения байтов, возможно, ноль или -1 если канал достиг конца потока
- Атрибуты
Исключения
Если другой поток закрывает канал во время чтения.
Если другой поток прерывает вызывающий поток во время выполнения операции. Состояние прерывания вызывающего потока задается и канал закрыт.
Значение , если канал закрыт.
другая ошибка ввода-вывода возникает, сведения находятся в сообщении.
Значение , если канал не был открыт для чтения.
Комментарии
Считывает последовательность байтов из этого канала в заданный буфер.
Предпринята попытка считывать до r байтов из канала, где r — это число байтов, оставшихся в буфере, то есть dst.remaining()в данный момент вызывается этот метод.
Предположим, что считывается последовательность байтов длины n , где 0><=> n><=> r. Эта последовательность байтов будет передана в буфер, чтобы первый байт в последовательности был на индексе p , а последний байт находится в индексе p +> n>->1, где p — это позиция буфера в данный момент, когда вызывается этот метод. После возврата позиции буфера будет равно p +> n; его ограничение не изменится.
Операция чтения может не заполнять буфер, и на самом деле она может не считывать байты вообще. Независимо от того, зависит ли это от природы и состояния канала. Канал сокета в режиме неблокировки, например, не может читать больше байтов, чем немедленно доступен из входного буфера сокета; аналогичным образом канал файлов не может считывать больше байтов, чем остаться в файле. Однако гарантируется, что если канал находится в режиме блокировки и в буфере остается по крайней мере один байт, этот метод будет блокироваться до тех пор, пока не будет считываться по крайней мере один байт.
Этот метод может вызываться в любое время. Если другой поток уже инициировал операцию чтения по этому каналу, то вызов этого метода будет блокироваться до завершения первой операции.
Java документации по java.nio.channels.ReadableByteChannel.read(java.nio.ByteBuffer).
Части этой страницы — это изменения на основе работы, созданной и общей Project и используемых в соответствии с условиями, описанными в разделе "".