Spec-Zone.ru › OpenJDK 25

Интерфейс WritableByteChannel

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

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

Начиная с:
1.4

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

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

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

close, isOpen

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

write

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

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

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

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

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

Параметры:
src - Буфер, из которого извлекаются байты
Возвращает:
Количество записанных байтов, возможно, ноль
Исключения:
NonWritableChannelException - Если этот канал не был открыт для записи
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/WritableByteChannel.html

Spec-Zone.ru

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