Пакет java.nio
Определяет буферы, являющиеся контейнерами для данных, и предоставляет обзор других пакетов 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) существует класс буфера. Каждый класс определяет набор методов чтения и записи для перемещения данных из буфера и в него, методы для уплотнения, дублирования и нарезки буфера, а также статические методы для выделения нового буфера и для обёртки существующего массива в буфер.
Байтовые буферы отличаются тем, что они могут использоваться в качестве источников и приемников операций ввода-вывода. Они также поддерживают несколько функций, отсутствующих в других классах буферов:
Байтовый буфер может быть выделен как прямой буфер, в этом случае виртуальная машина Java сделает все возможное, чтобы выполнить операции прямого системного ввода-вывода непосредственно над ним.
Байтовый буфер может быть создан с помощью
mappingобласти файла непосредственно в памяти, в этом случае доступно несколько дополнительных файловых операций, определенных в классеMappedByteBuffer.Байтовый буфер предоставляет доступ к его содержимому как гетерогенной или гомогенной последовательности бинарных данных любого примитивного типа (кроме boolean), в порядке байтов big-endian или little-endian byte order.
Если не указано иное, передача null аргумента конструктору или методу в любом классе или интерфейсе в этом пакете вызовет исключение NullPointerException.
- С момента:
- 1.4
| Класс | Описание |
|---|---|
| Buffer | Контейнер для данных определенного примитивного типа. |
| ByteBuffer | Байтовый буфер. |
| ByteOrder | Безопасное перечисление порядков байтов. |
| CharBuffer | Буфер символов. |
| DoubleBuffer | Буфер с двойной точностью. |
| FloatBuffer | Буфер с плавающей точкой. |
| IntBuffer | Буфер целых чисел. |
| LongBuffer | Буфер длинных целых чисел. |
| MappedByteBuffer | Прямой байтовый буфер, содержимое которого представляет собой сопоставленную в память область файла. |
| ShortBuffer | Буфер коротких целых чисел. |
| Исключение | Описание |
|---|---|
| BufferOverflowException | Исключение, генерируемое, когда операция относительной записи достигает предела буфера. |
| BufferUnderflowException | Исключение, генерируемое, когда операция относительного чтения достигает предела буфера. |
| InvalidMarkException | Исключение, генерируемое, когда буфер пытается восстановить позицию, если отметка не определена. |
| ReadOnlyBufferException | Исключение, генерируемое, когда метод изменения содержимого, такой как |
© 1993, 2020, 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/11/docs/api/java.base/java/nio/package-summary.html