Package java.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
| Класс | Описание |
|---|---|
| Buffer | Контейнер для данных определённого примитивного типа. |
| BufferOverflowException | Непроверяемое исключение, выбрасываемое, когда относительная операция put достигает предела целевого буфера. |
| BufferUnderflowException | Непроверяемое исключение, выбрасываемое, когда относительная операция get достигает предела исходного буфера. |
| ByteBuffer | Байтовый буфер. |
| ByteOrder | Типобезопасное перечисление порядка байтов. |
| CharBuffer | Буфер для значений типа char. |
| DoubleBuffer | Буфер для значений типа double. |
| FloatBuffer | Буфер для значений типа float. |
| IntBuffer | Буфер для значений типа int. |
| InvalidMarkException | Непроверяемое исключение, выбрасываемое при попытке сбросить буфер, если его отметка не задана. |
| LongBuffer | Буфер для значений типа long. |
| MappedByteBuffer | Прямой байтовый буфер, содержимое которого представляет собой отображённую в память область файла. |
| ReadOnlyBufferException | Непроверяемое исключение, выбрасываемое при вызове метода, изменяющего содержимое, например put или compact, для буфера только для чтения. |
| ShortBuffer | Буфер для значений типа short. |
© 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