Spec-Zone.ru › OpenJDK 25

Интерфейс ReadableByteChannel

Все суперинтерфейсы:
AutoCloseable, Channel, Closeable
Все известные подинтерфейсы:
ByteChannel, ScatteringByteChannel, SeekableByteChannel
Все известные реализующие классы:
DatagramChannel, FileChannel, Pipe.SourceChannel, SocketChannel
public interface ReadableByteChannel extends Channel
Канал, из которого можно считывать байты.

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

С версии:
1.4

Краткое описание методов

Модификатор и тип Метод Описание
int read(ByteBuffer dst)
Считывает последовательность байтов из этого канала в указанный буфер.

Методы, объявленные в интерфейсе Channel

close, isOpen

Подробное описание методов

read

int read(ByteBuffer dst) throws IOException
Считывает последовательность байтов из этого канала в указанный буфер.

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

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

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

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

Параметры:
dst — Буфер, в который будут перенесены байты
Возвращает:
Количество считанных байтов, возможно ноль, или -1, если канал достиг конца потока
Выбрасывает:
IllegalArgumentException — Если буфер доступен только для чтения
NonReadableChannelException — Если этот канал открыт не для чтения
ClosedChannelException — Если этот канал закрыт
AsynchronousCloseException — Если другой поток закроет этот канал во время выполнения операции чтения
ClosedByInterruptException — Если другой поток прервет текущий поток во время выполнения операции чтения, тем самым закрыв канал и установив статус прерывания текущего потока
IOException — Если произойдет другая ошибка ввода-вывода

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторские права © 1993, 2025, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/nio/channels/ReadableByteChannel.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API