Интерфейс WritableByteChannel
- Все суперинтерфейсы:
-
AutoCloseable,Channel,Closeable
- Все известные подинтерфейсы:
-
ByteChannel,GatheringByteChannel,SeekableByteChannel
- Все известные реализующие классы:
-
DatagramChannel,FileChannel,Pipe.SinkChannel,SocketChannel
public interface WritableByteChannel extends Channel
Одновременно может выполняться только одна операция записи в канале. Если один поток инициирует операцию записи в канал, любой другой поток, пытающийся инициировать другую операцию записи, будет заблокирован до завершения первой операции. Возможность одновременного выполнения других операций ввода-вывода вместе с операцией записи зависит от типа канала.
- С:
- 1.4
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
int |
write |
Записывает последовательность байтов в этот канал из заданного буфера. |
Подробное описание методов
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- Если произошла другая ошибка ввода-вывода
© 1993, 2023, 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/21/docs/api/java.base/java/nio/channels/WritableByteChannel.html