Spec-Zone.ru › OpenJDK 24

Интерфейс ReadableByteChannel

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

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

С:
1.4

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

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

Методы, объявленные в интерфейсе java.nio.channels.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 - Если произошла какая-либо другая ошибка ввода-вывода

© 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://download.java.net/java/early_access/jdk24/docs/api/java.base/java/nio/channels/ReadableByteChannel.html

Spec-Zone.ru

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