Spec-Zone .ru
спецификации, руководства, описания, API
|
public interface SeekableByteChannel extends ByteChannel
seekable канал байта соединяется с объектом, обычно файл, который содержит последовательность переменной длины байтов, которые могут быть считаны и записаны. Текущая позиция может быть queried
и modified
. Канал также обеспечивает доступ к текущему размеру объекта, с которым соединяется канал. Размер увеличивается, когда байты пишутся вне его текущего размера; размер уменьшается, когда это truncated
.
position
и truncate
методы, у которых иначе нет значения, чтобы возвратиться, определяются, чтобы возвратить канал, на который они вызываются. Это позволяет вызовам метода быть объединенными в цепочку. Реализации этого интерфейса должны специализировать тип возврата так, чтобы вызовы метода на классе реализации могли быть объединены в цепочку.
Модификатор и Тип | Метод и Описание |
---|---|
long |
position()
Возвраты позиция этого канала.
|
SeekableByteChannel |
position(long newPosition)
Наборы позиция этого канала.
|
int |
read(ByteBuffer dst)
Читает последовательность байтов от этого канала в данный буфер.
|
long |
size()
Возвращает текущий размер объекта, с которым соединяется этот канал.
|
SeekableByteChannel |
truncate(long size)
Усекает объект, с которым этот канал соединяется к данному размеру.
|
int |
write(ByteBuffer src)
Пишет последовательность байтов к этому каналу от данного буфера.
|
int read(ByteBuffer dst) throws IOException
Байты читаются, запускаясь в текущей позиции этого канала, и затем позиция обновляется с числом байтов фактически чтение. Иначе этот метод ведет себя точно как определено в ReadableByteChannel
интерфейс.
read
в интерфейсе ReadableByteChannel
dst
- Буфер, в который должны быть переданы байтыClosedChannelException
- Если этот канал закрываетсяAsynchronousCloseException
- Если другой поток закрывает этот канал, в то время как операция чтения происходитClosedByInterruptException
- Если другой поток прерывает текущий поток, в то время как операция чтения происходит, таким образом закрывая канал и устанавливая состояние прерывания текущего потокаIOException
- Если некоторая другая ошибка ввода-вывода происходитint write(ByteBuffer src) throws IOException
Байты пишутся, запускаясь в текущей позиции этого канала, если канал не соединяется с объектом, таким как файл, который открывается с APPEND
опция, когда позиция сначала совершенствуется до конца. Объект, с которым соединяется канал, выращивается, в случае необходимости, чтобы разместить записанные байты, и затем позиция обновляется с числом байтов, фактически записанных. Иначе этот метод ведет себя точно как определено WritableByteChannel
интерфейс.
write
в интерфейсе WritableByteChannel
src
- Буфер, от которого должны быть получены байтыClosedChannelException
- Если этот канал закрываетсяAsynchronousCloseException
- Если другой поток закрывает этот канал, в то время как операция записи происходитClosedByInterruptException
- Если другой поток прерывает текущий поток, в то время как операция записи происходит, таким образом закрывая канал и устанавливая состояние прерывания текущего потокаIOException
- Если некоторая другая ошибка ввода-вывода происходитlong position() throws IOException
ClosedChannelException
- Если этот канал закрываетсяIOException
- Если некоторая другая ошибка ввода-вывода происходитSeekableByteChannel position(long newPosition) throws IOException
Установка позиции к значению, которое больше чем текущий размер, является законной, но не изменяет размер объекта. Более поздняя попытка считать байты в такой позиции сразу возвратит индикацию конца файла. Более поздняя попытка записать байты в такой позиции заставит объект расти, чтобы разместить новые байты; значения любых байтов между предыдущим концом файла и недавно записанных байтов являются неуказанными.
Установка позиции канала не рекомендуется когда соединено с объектом, обычно файл, который открывается с APPEND
опция. Когда открыто для добавляют, позиция сначала совершенствуется до конца перед записью.
newPosition
- Новая позиция, неотрицательное целое число, считая число байтов с начала объектаClosedChannelException
- Если этот канал закрываетсяIllegalArgumentException
- Если новая позиция отрицательнаIOException
- Если некоторая другая ошибка ввода-вывода происходитlong size() throws IOException
ClosedChannelException
- Если этот канал закрываетсяIOException
- Если некоторая другая ошибка ввода-вывода происходитSeekableByteChannel truncate(long size) throws IOException
Если данный размер является меньше чем текущий размер тогда, объект является усеченным, отбрасывая любые байты вне нового конца. Если данный размер больше чем или равен текущему размеру тогда, объект не изменяется. В любом случае, если текущая позиция больше чем данный размер тогда, что это устанавливается в тот размер.
Реализация этого интерфейса может запретить усечение когда соединено с объектом, обычно файл, открытый с APPEND
опция.
size
- Новый размер, неотрицательное количество байтаNonWritableChannelException
- Если этот канал не был открыт для того, чтобы записатьClosedChannelException
- Если этот канал закрываетсяIllegalArgumentException
- Если новый размер отрицателенIOException
- Если некоторая другая ошибка ввода-вывода происходит
Для дальнейшей ссылки API и документации разработчика, см.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.