Most visited

Recently visited

Added in API level 1

MappedByteBuffer

public abstract class MappedByteBuffer
extends ByteBuffer

java.lang.Object
   ↳ java.nio.Buffer
     ↳ java.nio.ByteBuffer
       ↳ java.nio.MappedByteBuffer


直接字节缓冲区,其内容是文件的内存映射区域。

映射字节缓冲区通过FileChannel.map方法创建。 该类使用特定于内存映射文件区域的操作扩展了ByteBuffer类。

映射的字节缓冲区及其所代表的文件映射在缓冲区本身被垃圾收集之前保持有效。

映射字节缓冲区的内容可以随时更改,例如,如果映射文件的相应区域的内容被此程序或其他程序更改。 无论这种变化是否发生,以及何时发生,都取决于操作系统,因此不具体。

All or part of a mapped byte buffer may become inaccessible at any time, for example if the mapped file is truncated. An attempt to access an inaccessible region of a mapped byte buffer will not change the buffer's content and will cause an unspecified exception to be thrown either at the time of the access or at some later time. It is therefore strongly recommended that appropriate precautions be taken to avoid the manipulation of a mapped file by this program, or by a concurrently running program, except to read or write the file's content.

Mapped byte buffers otherwise behave no differently than ordinary direct byte buffers.

Summary

Public methods

final MappedByteBuffer force()

强制将对此缓冲区内容所做的任何更改写入包含映射文件的存储设备。

final boolean isLoaded()

告诉这个缓冲区的内容是否驻留在物理内存中。

final MappedByteBuffer load()

将此缓冲区的内容加载到物理内存中。

Inherited methods

From class java.nio.ByteBuffer
From class java.nio.Buffer
From class java.lang.Object
From interface java.lang.Comparable

Public methods

force

Added in API level 1
MappedByteBuffer force ()

强制将对此缓冲区内容所做的任何更改写入包含映射文件的存储设备。

如果映射到此缓冲区的文件驻留在本地存储设备上,那么当此方法返回时,保证自从创建缓冲区以来所做的所有更改(或者自上次调用该方法以来)都将被写入该设备。

如果该文件没有驻留在本地设备上,则不提供这种保证。

如果此缓冲区未以读/写模式( READ_WRITE )映射,则调用此方法不起作用。

Returns
MappedByteBuffer This buffer

isLoaded

Added in API level 1
boolean isLoaded ()

告诉这个缓冲区的内容是否驻留在物理内存中。

返回值true意味着该缓冲区中的所有数据很可能驻留在物理内存中,因此可能会被访问而不会导致任何虚拟内存页面错误或I / O操作。 返回值false并不一定意味着缓冲区的内容不在物理内存中。

返回的值是一个提示,而不是一个保证,因为在此方法调用返回时,底层操作系统可能会调出某些缓冲区的数据。

Returns
boolean true if it is likely that this buffer's content is resident in physical memory

load

Added in API level 1
MappedByteBuffer load ()

将此缓冲区的内容加载到物理内存中。

此方法尽最大努力确保当它返回时,此缓冲区的内容驻留在物理内存中。 调用此方法可能会导致出现一些页面错误和I / O操作。

Returns
MappedByteBuffer This buffer

Hooray!