Интерфейс 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 байтов. Некоторые типы каналов, в зависимости от своего состояния, могут записать лишь часть байтов или вообще ни одного. Например, сокетный канал в неблокирующем режиме не может записать больше байтов, чем свободно в выходном буфере сокета. Возможно, потребуется вызвать метод write более одного раза, чтобы записать все оставшиеся байты.
Этот метод можно вызывать в любое время. Однако если другой поток уже начал операцию записи в этот канал, вызов этого метода будет заблокирован до завершения первой операции.
- Параметры:
-
src— буфер, из которого извлекаются байты - Возвращает:
- Количество записанных байтов, возможно, ноль
- Вызывает исключение:
-
NonWritableChannelException— если этот канал не был открыт для записи -
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.