Пакет java.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
| Класс | Описание |
|---|---|
| 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