Spec-Zone.ru › OpenJDK 25

Package java.nio

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

Основные абстракции API NIO:

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

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

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

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

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

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

Описание различных буферов
Буферы Описание
Buffer Позиция, предел и ёмкость; clear, flip, rewind и mark/reset
ByteBuffer Get/put, compact, представления; allocate, wrap
MappedByteBuffer Байтовый буфер, отображённый на файл
CharBuffer Get/put, compact; allocate, wrap
DoubleBuffer Get/put, compact; allocate, wrap
FloatBuffer Get/put, compact; allocate, wrap
IntBuffer Get/put, compact; allocate, wrap
LongBuffer Get/put, compact; allocate, wrap
ShortBuffer Get/put, compact; allocate, wrap
ByteOrder Типобезопасное перечисление порядка байтов

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

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

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

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

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

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

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

Начиная с версии:
1.4
Пакет Описание
java.nio.channels
Определяет каналы, представляющие соединения с объектами, способными выполнять операции ввода-вывода, такими как файлы и сокеты; определяет селекторы для мультиплексированных неблокирующих операций ввода-вывода.
java.nio.charset
Определяет наборы символов, декодеры и кодировщики для преобразования байтов в символы Unicode и обратно.
java.nio.file
Определяет интерфейсы и классы, позволяющие виртуальной машине Java получать доступ к файлам, атрибутам файлов и файловым системам.
Класс Описание
Buffer
Контейнер для данных определённого примитивного типа.
BufferOverflowException
Непроверяемое исключение, выбрасываемое, когда относительная операция put достигает предела целевого буфера.
BufferUnderflowException
Непроверяемое исключение, выбрасываемое, когда относительная операция get достигает предела исходного буфера.
ByteBuffer
Байтовый буфер.
ByteOrder
Типобезопасное перечисление порядка байтов.
CharBuffer
Буфер для значений типа char.
DoubleBuffer
Буфер для значений типа double.
FloatBuffer
Буфер для значений типа float.
IntBuffer
Буфер для значений типа int.
InvalidMarkException
Непроверяемое исключение, выбрасываемое при попытке сбросить буфер, если его отметка не задана.
LongBuffer
Буфер для значений типа long.
MappedByteBuffer
Прямой байтовый буфер, содержимое которого представляет собой отображённую в память область файла.
ReadOnlyBufferException
Непроверяемое исключение, выбрасываемое при вызове метода, изменяющего содержимое, например put или compact, для буфера только для чтения.
ShortBuffer
Буфер для значений типа short.

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в разделе документации Java SE, содержащем более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторское право © 1993, 2025, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/nio/package-summary.html

Spec-Zone.ru

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