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