Spec-Zone.ru › OpenJDK 17

Пакет java.nio

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Если не указано иное, передача 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, 2021, 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://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/nio/package-summary.html

Spec-Zone.ru

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