Spec-Zone.ru › OpenJDK 8

Интерфейс SeekableByteChannel

Все суперинтерфейсы:
AutoCloseable, ByteChannel, Channel, Closeable, ReadableByteChannel, WritableByteChannel
Все известные реализующие классы:
FileChannel

public interface SeekableByteChannel
extends ByteChannel

Поток байтов, который поддерживает текущую позицию и позволяет её изменять.

Поток байтов с возможностью поиска связан с сущностью, как правило, файлом, содержащим последовательность байтов переменной длины, которую можно читать и записывать. Текущую позицию можно queried и modified. Поток также предоставляет доступ к текущему размеру сущности, к которой он подключён. Размер увеличивается при записи байтов за пределами текущего размера; размер уменьшается при truncated.

Методы position и truncate, не имеющие значения возврата, возвращают канал, на котором они вызваны. Это позволяет цепочечное вызов методов. Реализации этого интерфейса должны специализировать тип возвращаемого значения, чтобы вызовы методов на классе реализации могли быть цепочечными.

С момента:
1.7
См. также:
Files.newByteChannel(java.nio.file.Path, java.util.Set<? extends java.nio.file.OpenOption>, java.nio.file.attribute.FileAttribute<?>...)

Методы

Модификатор и тип Метод и описание
long position()

Возвращает текущую позицию канала.

SeekableByteChannel position(long newPosition)

Устанавливает позицию канала.

int read(ByteBuffer dst)

Считывает последовательность байтов из этого канала в заданный буфер.

long size()

Возвращает текущий размер сущности, к которой подключен этот канал.

SeekableByteChannel truncate(long size)

Усекает сущность, к которой подключён этот канал, до заданного размера.

int write(ByteBuffer src)

Записывает последовательность байтов в этот канал из заданного буфера.

Методы, унаследованные от интерфейса java.nio.channels.Channel

close, isOpen

Методы

read

int read(ByteBuffer dst)
  throws IOException

Считывает последовательность байтов из этого канала в заданный буфер.

Байты считываются, начиная с текущей позиции канала, а затем позиция обновляется с количеством фактически считанных байтов. В противном случае этот метод ведет себя точно так же, как указано в интерфейсе ReadableByteChannel.

Определено в:
read в интерфейсе ReadableByteChannel
Параметры:
dst - Буфер, в который будут перенесены байты
Возвращает:
Количество считанных байтов, возможно ноль, или -1 если канал достиг конца потока
Исключения:
ClosedChannelException - Если этот канал закрыт
AsynchronousCloseException - Если другой поток закрывает этот канал во время операции чтения
ClosedByInterruptException - Если другой поток прерывает текущий поток во время операции чтения, тем самым закрывая канал и устанавливая состояние прерывания текущего потока
IOException - Если произошла другая ошибка ввода-вывода

write

int write(ByteBuffer src)
   throws IOException

Записывает последовательность байтов в этот канал из заданного буфера.

Байты записываются, начиная с текущей позиции канала, если канал подключён к сущности, например, файлу, который открыт с параметром APPEND, в этом случае позиция сначала смещается в конец. Сущность, к которой подключен канал, увеличивается, если необходимо, чтобы вместить записанные байты, и затем позиция обновляется с количеством фактически записанных байтов. В противном случае этот метод ведет себя точно так же, как указано в интерфейсе WritableByteChannel.

Определено в:
write в интерфейсе WritableByteChannel
Параметры:
src - Буфер, из которого нужно извлечь байты
Возвращает:
Количество записанных байтов, возможно ноль
Исключения:
ClosedChannelException - Если этот канал закрыт
AsynchronousCloseException - Если другой поток закрывает этот канал во время операции записи
ClosedByInterruptException - Если другой поток прерывает текущий поток во время операции записи, тем самым закрывая канал и устанавливая состояние прерывания текущего потока
IOException - Если произошла другая ошибка ввода-вывода

position

long position()
       throws IOException

Возвращает текущую позицию канала.

Возвращает:
Позицию канала, целое число, неотрицательное, обозначающее количество байтов с начала сущности до текущей позиции.
Исключения:
ClosedChannelException - Если этот канал закрыт
IOException - Если произошла другая ошибка ввода-вывода

position

SeekableByteChannel position(long newPosition)
                      throws IOException

Устанавливает позицию канала.

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

Установка позиции канала не рекомендуется, когда он подключен к сущности, как правило, файлу, открытому с параметром APPEND. При открытии для добавления позиция сначала смещается в конец перед записью.

Параметры:
newPosition - Новая позиция, целое число, неотрицательное, обозначающее количество байтов с начала сущности
Возвращает:
Этот канал
Исключения:
ClosedChannelException - Если этот канал закрыт
IllegalArgumentException - Если новая позиция отрицательна
IOException - Если произошла другая ошибка ввода-вывода

size

long size()
   throws IOException

Возвращает текущий размер сущности, к которой подключен этот канал.

Возвращает:
Текущий размер, измеренный в байтах
Исключения:
ClosedChannelException - Если этот канал закрыт
IOException - Если произошла другая ошибка ввода-вывода

truncate

SeekableByteChannel truncate(long size)
                      throws IOException

Усекает сущность, к которой подключён этот канал, до заданного размера.

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

Реализация этого интерфейса может запретить обрезку при подключении к сущности, как правило, файлу, открытому с параметром APPEND.

Параметры:
size - Новый размер, неотрицательное количество байтов
Возвращает:
Этот канал
Исключения:
NonWritableChannelException - Если этот канал не был открыт для записи
ClosedChannelException - Если этот канал закрыт
IllegalArgumentException - Если новый размер отрицательный
IOException - Если произошла другая ошибка ввода-вывода

© 1993, 2020, 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.

Spec-Zone.ru

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