Язык

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 и используемых в соответствии с условиями, описанными в разделе "".

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