Spec-Zone .ru
спецификации, руководства, описания, API
|
public interface WritableByteChannel extends Channel
Только одна операция записи на перезаписываемый канал может произойти в любой момент времени. Если один поток будет инициировать операцию записи на канал тогда какой-либо другой поток, который пытается инициировать другую операцию записи, то блокирует, пока первая работа не полна. Могут ли другие виды операций ввода-вывода продолжиться одновременно с операцией записи, зависит от типа канала.
Модификатор и Тип | Метод и Описание |
---|---|
int |
write(ByteBuffer src)
Пишет последовательность байтов к этому каналу от данного буфера.
|
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 и документации разработчика, см.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.