public abstract class MappedByteBuffer
extends ByteBuffer
java.lang.Object | |||
↳ | java.nio.Buffer | ||
↳ | java.nio.ByteBuffer | ||
↳ | java.nio.MappedByteBuffer |
直接字节缓冲区,其内容是文件的内存映射区域。
映射字节缓冲区通过FileChannel.map
方法创建。 该类使用特定于内存映射文件区域的操作扩展了ByteBuffer
类。
映射的字节缓冲区及其所代表的文件映射在缓冲区本身被垃圾收集之前保持有效。
映射字节缓冲区的内容可以随时更改,例如,如果映射文件的相应区域的内容被此程序或其他程序更改。 无论这种变化是否发生,以及何时发生,都取决于操作系统,因此不具体。
Mapped byte buffers otherwise behave no differently than ordinary direct byte buffers.
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
|
MappedByteBuffer force ()
强制将对此缓冲区内容所做的任何更改写入包含映射文件的存储设备。
如果映射到此缓冲区的文件驻留在本地存储设备上,那么当此方法返回时,保证自从创建缓冲区以来所做的所有更改(或者自上次调用该方法以来)都将被写入该设备。
如果该文件没有驻留在本地设备上,则不提供这种保证。
如果此缓冲区未以读/写模式( READ_WRITE
)映射,则调用此方法不起作用。
Returns | |
---|---|
MappedByteBuffer |
This buffer |
boolean isLoaded ()
告诉这个缓冲区的内容是否驻留在物理内存中。
返回值true意味着该缓冲区中的所有数据很可能驻留在物理内存中,因此可能会被访问而不会导致任何虚拟内存页面错误或I / O操作。 返回值false并不一定意味着缓冲区的内容不在物理内存中。
返回的值是一个提示,而不是一个保证,因为在此方法调用返回时,底层操作系统可能会调出某些缓冲区的数据。
Returns | |
---|---|
boolean |
true if it is likely that this buffer's content is resident in physical memory |
MappedByteBuffer load ()
将此缓冲区的内容加载到物理内存中。
此方法尽最大努力确保当它返回时,此缓冲区的内容驻留在物理内存中。 调用此方法可能会导致出现一些页面错误和I / O操作。
Returns | |
---|---|
MappedByteBuffer |
This buffer |