IScatteringByteChannel.Read Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Перегрузки
Read(ByteBuffer[]) |
Считывает последовательность байтов из этого канала в заданные буферы. |
Read(ByteBuffer[], Int32, Int32) |
Считывает последовательность байтов из этого канала в подсезону заданных буферов. |
Read(ByteBuffer[])
Считывает последовательность байтов из этого канала в заданные буферы.
[Android.Runtime.Register("read", "([Ljava/nio/ByteBuffer;)J", "GetRead_arrayLjava_nio_ByteBuffer_Handler:Java.Nio.Channels.IScatteringByteChannelInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")]
public long Read (Java.Nio.ByteBuffer[]? dsts);
[<Android.Runtime.Register("read", "([Ljava/nio/ByteBuffer;)J", "GetRead_arrayLjava_nio_ByteBuffer_Handler:Java.Nio.Channels.IScatteringByteChannelInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")>]
abstract member Read : Java.Nio.ByteBuffer[] -> int64
Параметры
- dsts
- ByteBuffer[]
Буферы, в которые передаются байты
Возвращаемое значение
Число прочитанных байтов( возможно, ноль) или -1
значение, если канал достиг конца потока
- Атрибуты
Исключения
Значение , если канал закрыт другим потоком во время этой операции чтения.
Значение , если другой поток прерывает вызывающий поток во время выполнения операции. Задано состояние прерывания вызывающего потока, а канал закрыт.
Значение , если канал закрыт.
если возникает другая ошибка ввода-вывода; подробные сведения содержатся в сообщении.
Значение , если канал не был открыт в режиме, который разрешает чтение.
Комментарии
Считывает последовательность байтов из этого канала в заданные буферы.
Вызов этого метода формы c.read(dsts)
ведет себя точно так же, как вызов
<blockquote>
c.read(dsts, 0, dsts.length);
</blockquote>
Документация по Java для java.nio.channels.ScatteringByteChannel.read(java.nio.ByteBuffer[])
.
Части этой страницы являются изменениями, основанными на работе, созданной и совместно используемой проектом Android и используемой в соответствии с условиями, Creative Commons 2.5 Attribution License.
Применяется к
Read(ByteBuffer[], Int32, Int32)
Считывает последовательность байтов из этого канала в подсезону заданных буферов.
[Android.Runtime.Register("read", "([Ljava/nio/ByteBuffer;II)J", "GetRead_arrayLjava_nio_ByteBuffer_IIHandler:Java.Nio.Channels.IScatteringByteChannelInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")]
public long Read (Java.Nio.ByteBuffer[]? dsts, int offset, int length);
[<Android.Runtime.Register("read", "([Ljava/nio/ByteBuffer;II)J", "GetRead_arrayLjava_nio_ByteBuffer_IIHandler:Java.Nio.Channels.IScatteringByteChannelInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")>]
abstract member Read : Java.Nio.ByteBuffer[] * int * int -> int64
Параметры
- dsts
- ByteBuffer[]
Буферы, в которые передаются байты
- offset
- Int32
Смещение в массиве буферов первого буфера, в который необходимо передать байты; не должен быть отрицательным и не должен превышать dsts.length
- length
- Int32
Максимальное число буферов для доступа; не должен быть отрицательным и не должен dsts.length
превышать - offset
Возвращаемое значение
Число прочитанных байтов( возможно, ноль) или -1
значение, если канал достиг конца потока
- Атрибуты
Исключения
Значение , если канал закрыт другим потоком во время этой операции чтения.
Значение , если другой поток прерывает вызывающий поток во время выполнения операции. Задано состояние прерывания вызывающего потока, а канал закрыт.
Значение , если канал закрыт.
, если offset
или length
, или , если offset + length
больше, чем размер buffers
.
если возникает другая ошибка ввода-вывода; подробные сведения содержатся в сообщении.
Значение , если канал не был открыт в режиме, который разрешает чтение.
Комментарии
Считывает последовательность байтов из этого канала в подсезону заданных буферов.
Вызов этого метода пытается считывать до r байтов из этого канала, где r — это общее количество байтов, оставшихся в указанной подсети заданного буферного массива, т. е.
<blockquote>
dsts[offset].remaining()
+ dsts[offset+1].remaining()
+ ... + dsts[offset+length-1].remaining()
</blockquote>
в момент вызова этого метода.
Предположим, что считывается последовательность байтов длины n , где 0
<=
n <=
r. До первых dsts[offset].remaining()
байтов этой последовательности передаются в буфер dsts[offset]
, до следующих dsts[offset+1].remaining()
байтов передаются в буфер dsts[offset+1]
и т. д., пока вся последовательность байтов не будет передана в заданные буферы. В каждый буфер передается как можно больше байтов, поэтому окончательная позиция каждого обновленного буфера, за исключением последнего обновленного буфера, гарантированно будет равна ограничению этого буфера.
Этот метод можно вызвать в любое время. Однако если другой поток уже инициировал операцию чтения в этом канале, вызов этого метода будет блокироваться до завершения первой операции.
Части этой страницы являются изменениями, основанными на работе, созданной и совместно используемой проектом Android и используемой в соответствии с условиями, Creative Commons 2.5 Attribution License.