内存映射文件:MappedByteBuffer

来源:互联网 发布:唐诗草木知春不久归 编辑:程序博客网 时间:2024/06/05 08:54

内存映射文件:MappedByteBuffer 

内存映射文件能让你创建和修改那些因为太大而无法放入内存的文件。有了内存映射文件,你就可以认为文件已经全部读进了内存,然后把它当成一个非常大的数组来访问。这种解决办法能大大简化修改文件的代码。

 FileChannel提供了map方法来把文件影射为内存映像文件:

fileChannel.map(FileChannel.MapMode mode, longposition, long size)将此通道的文件区域直接映射到内存中。注意,你必须指明,它是从文件的哪个位置开始映射的,映射的范围又有多大;也就是说,它还可以映射一个大文件的某个小片断。

更突出的优势是共享内存,内存映射文件可以被多个进程同时访问,起到一种低时延共享内存的作用。

内存映射文件是一种允许Java程序直接从内存访问的特殊文件。通过将整个文件或者文件的一部分映射到内存中、操作系统负责获取页面请求和写入文件,应用程序就只需要处理内存数据,这样可以实现非常快速的IO操作。用于内存映射文件的内存在Java的堆空间以外。Java中的java.nio包支持内存映射文件,可以使用MappedByteBuffer来读写内存。MappedByteBuffer是ByteBuffer的子类,因此它具备了ByteBuffer的所有方法。

阅读全文
0 0
原创粉丝点击