Spec-Zone.ru › OpenJDK 24

Пакет java.nio

package java.nio
Определяет буферы, являющиеся контейнерами для данных, и предоставляет обзор других пакетов NIO.

Центральные абстракции API NIO:

  • Буферы, которые являются контейнерами для данных;

  • Кодировки и связанные с ними декодеры и кодировщики,
    которые переводят байты в символы Юникода и обратно;

  • Каналы различных типов, представляющие соединения
    с сущностями, способными выполнять операции ввода-вывода; и

  • Селекторы и ключи селекции, которые вместе с
    выбираемыми каналами определяют средство мультиплексирования, асинхронного
    ввода-вывода
    .

  • Путь, который вместе с классом Файлы предоставляет доступ к файлам.

Пакет java.nio определяет классы буферов, которые используются во всех API NIO. API кодировок определено в пакете java.nio.charset, API каналов и селекторов в пакете java.nio.channels, а API файлов и путей — в пакете java.nio.file. Каждый из этих подпакетов имеет свой собственный подпакет интерфейса поставщика сервисов (SPI), содержимое которого может быть использовано для расширения стандартных реализаций платформы или для построения альтернативных реализаций.

Описание различных буферов
Буферы Описание
Buffer Позиция, предел и емкость; очистка, переворот, перемотка и пометка/восстановление
ByteBuffer Получение/запись, уплотнение, представления; выделение, оборачивание
MappedByteBuffer Байтовый буфер, сопоставленный с файлом
CharBuffer Получение/запись, уплотнение; выделение, оборачивание
DoubleBuffer Получение/запись, уплотнение; выделение, оборачивание
FloatBuffer Получение/запись, уплотнение; выделение, оборачивание
IntBuffer Получение/запись, уплотнение; выделение, оборачивание
LongBuffer Получение/запись, уплотнение; выделение, оборачивание
ShortBuffer Получение/запись, уплотнение; выделение, оборачивание
ByteOrder Типобезопасное перечисление порядков байтов

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

Для каждого примитивного типа (кроме boolean) существует класс буфера. Каждый класс определяет набор методов получения и записи для перемещения данных в буфер и из буфера, методы для уплотнения, дублирования и нарезки буфера, и статические методы для выделения нового буфера, а также для оборачивания существующего массива в буфер.

Байтовые буферы отличаются тем, что они могут использоваться как источники и цели операций ввода-вывода. Они также поддерживают несколько функций, отсутствующих в других классах буферов:

  • Байтовый буфер может быть выделен как прямой буфер, в этом случае виртуальная машина Java постарается выполнить операции native I/O непосредственно над ним.

  • Байтовый буфер может быть создан путем mapping области файла непосредственно в память, в этом случае доступны несколько дополнительных операций, связанных с файлом, определенных в классе MappedByteBuffer.

  • Байтовый буфер предоставляет доступ к своему содержимому как гетерогенной, так и однородной последовательности бинарных данных любого примитивного типа (кроме boolean), как в формате big-endian, так и в формате little-endian порядка байтов.

Если не указано иное, передача null аргумента в конструктор или метод любого класса или интерфейса в этом пакете приведет к исключению NullPointerException.

Since:
1.4
Пакет Описание
java.nio.channels
Определяет каналы, которые представляют собой подключения к сущностям, способным выполнять операции ввода-вывода, такие как файлы и сокеты; определяет селекторы для операций мультиплексирования, асинхронного ввода-вывода.
java.nio.charset
Определяет кодировки, декодеры и кодировщики для преобразования между байтами и символами Юникода.
java.nio.file
Определяет интерфейсы и классы для доступа виртуальной машины Java к файлам, атрибутам файлов и файловым системам.
Класс Описание
Buffer
Контейнер для данных определенного примитивного типа.
BufferOverflowException
Исключение, которое выбрасывается при достижении предела буфера назначения относительной операцией записи.
BufferUnderflowException
Исключение, которое выбрасывается при достижении предела буфера источника относительной операцией чтения.
ByteBuffer
Байтовый буфер.
ByteOrder
Типобезопасное перечисление порядков байтов.
CharBuffer
Символьный буфер.
DoubleBuffer
Буфер с двойной точностью.
FloatBuffer
Буфер с плавающей точкой.
IntBuffer
Целочисленный буфер.
InvalidMarkException
Исключение, которое выбрасывается при попытке сбросить буфер, когда метка не определена.
LongBuffer
Буфер длинных целых чисел.
MappedByteBuffer
Прямой байтовый буфер, содержимое которого представляет собой область памяти, сопоставленную с файлом.
ReadOnlyBufferException
Исключение, которое выбрасывается, когда метод изменения содержимого, такой как put или compact, вызывается для только для чтения буфера.
ShortBuffer
Буфер коротких целых чисел.

© 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.
https://download.java.net/java/early_access/jdk24/docs/api/java.base/java/nio/package-summary.html

Spec-Zone.ru

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