Класс MappedByteBuffer
- java.lang.Object
-
- java.nio.Buffer
-
- java.nio.ByteBuffer
-
- java.nio.MappedByteBuffer
- Все реализованные интерфейсы:
- Comparable<ByteBuffer>
public abstract class MappedByteBuffer extends ByteBuffer
Прямой буфер байтов, содержимое которого представляет собой сопоставленную область памяти файла.
Сопоставленные буферы байтов создаются с помощью метода FileChannel.map. Этот класс расширяет класс ByteBuffer с операциями, специфичными для сопоставленных областей файлов.
Сопоставленный буфер байтов и сопоставление файла, которое он представляет, остаются действительными до тех пор, пока сам буфер не будет собран сборщиком мусора.
Содержимое сопоставленного буфера байтов может измениться в любой момент, например, если содержимое соответствующей области сопоставленного файла изменится этой программой или другой. Произойдут ли такие изменения и когда они произойдут, зависит от операционной системы и поэтому не определено.
Весь или часть сопоставленного буфера байтов может стать недоступным в любой момент, например, если сопоставленный файл усечен. Попытка доступа к недоступной области сопоставленного буфера байтов не изменит содержимое буфера и вызовет неопределённое исключение либо в момент доступа, либо в какой-то момент позже. Поэтому настоятельно рекомендуется принять соответствующие меры предосторожности, чтобы избежать изменения сопоставленного файла этой программой или одновременно работающей программой, за исключением чтения или записи содержимого файла.
В остальных случаях сопоставленные буферы байтов ведут себя так же, как обычные прямые буферы байтов.
- С момента:
- 1.4
Методы
| Модификатор и тип | Метод и описание |
|---|---|
MappedByteBuffer |
force() Принудительно записывает все изменения, внесённые в содержимое этого буфера, на устройство хранения, содержащее сопоставленный файл. |
boolean |
isLoaded() Указывает, находится ли содержимое этого буфера в физической памяти. |
MappedByteBuffer |
load() Загружает содержимое этого буфера в физическую память. |
Методы, унаследованные от класса java.nio.ByteBuffer
allocate, allocateDirect, array, arrayOffset, asCharBuffer, asDoubleBuffer, asFloatBuffer, asIntBuffer, asLongBuffer, asReadOnlyBuffer, asShortBuffer, compact, compareTo, duplicate, equals, get, get, get, get, getChar, getChar, getDouble, getDouble, getFloat, getFloat, getInt, getInt, getLong, getLong, getShort, getShort, hasArray, hashCode, isDirect, order, order, put, put, put, put, put, putChar, putChar, putDouble, putDouble, putFloat, putFloat, putInt, putInt, putLong, putLong, putShort, putShort, slice, toString, wrap, wrap Методы, унаследованные от класса java.nio.Buffer
capacity, clear, flip, hasRemaining, isReadOnly, limit, limit, mark, position, position, remaining, reset, rewind Методы, унаследованные от класса java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait Методы
isLoaded
public final boolean isLoaded()
Указывает, находится ли содержимое этого буфера в физической памяти.
Значение true предполагает, что, скорее всего, все данные в этом буфере находятся в физической памяти и, следовательно, к ним можно получить доступ, не вызывая страниц виртуальной памяти или операций ввода-вывода. Значение false не обязательно означает, что содержимое буфера не находится в физической памяти.
Возвращаемое значение является подсказкой, а не гарантией, потому что операционная система может выгрузить некоторые данные буфера в память подкачки к моменту возврата вызова этого метода.
- Возвращает:
-
trueесли, вероятно, содержимое этого буфера находится в физической памяти
load
public final MappedByteBuffer load()
Загружает содержимое этого буфера в физическую память.
Этот метод делает все возможное, чтобы к моменту возврата содержимое этого буфера находилось в физической памяти. Вызов этого метода может привести к некоторым страницам виртуальной памяти и операциям ввода-вывода.
- Возвращает:
- Этот буфер
force
public final MappedByteBuffer force()
Принудительно записывает все изменения, внесённые в содержимое этого буфера, на устройство хранения, содержащее сопоставленный файл.
Если файл, сопоставленный в этом буфере, находится на локальном устройстве хранения, то по возвращении из этого метода гарантируется, что все изменения, внесённые в буфер с момента его создания или с момента последнего вызова этого метода, будут записаны на это устройство.
Если файл не находится на локальном устройстве, то такая гарантия не предоставляется.
Если этот буфер не был сопоставлен в режиме чтения/записи (FileChannel.MapMode.READ_WRITE), вызов этого метода не имеет эффекта.
- Возвращает:
- Этот буфер
© 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.