Пакет 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 сделает всё возможное, чтобы выполнить операции родного ввода-вывода непосредственно над ним.
Байтовый буфер может быть создан с помощью
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, 2023, 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/21/docs/api/java.base/java/nio/package-summary.html