`
yjl49
  • 浏览: 113367 次
社区版块
存档分类
最新评论

内存映射文件

    博客分类:
  • JAVA
阅读更多

使用内存映射文件可以访问和修改那些超过机器内存大小而无法完全加载到内存的文件。MappedByteBuffer 可以将文件映射到内存中(不一定是物理内存),然后像使用数组般访问。

构建方法:


从java.nio.ByteBuffer,java.lang.Object继承的方法:

 

get,getChar,getDouble,getFloat,getInt,getLong,getShort,put,putChar,putDouble,putFloat,putInt,putLong,putShort, clear ,position ,limit

比较重要的几个方法:

isLoaded()、load()、force()

一般来讲使用position() 再加get([]byte),getInt(),getDouble() ,put([]byte),putInt(),putLong(),putDouble(),force()基本就够用了。

通过map(Mode,Position,length)参数的调整可以映射整个文件:map(Mode,0,filechannel.size())。size()如果大于实际文件的大小,则原文件会被扩大尤其是在可写的模式下。

isLoaded() 和 load() 可用来预先加载文件到内存,因为仅仅建立映射关系是不会导致文件被加载到内存的。这里要注意的是调用此方法并不能保证文件会常驻内存,有可能会因为如果不常使用,仍旧会被其他页挤出内存。

fqueue中对队列存储文件的操作就是一个很好的使用MappedByteBuffer的例子.

分享到:
评论

相关推荐

    C++中使用内存映射文件处理大文件

    内存映射文件是一种高效处理大文件的技术,尤其适用于需要处理大量数据的应用场景。在Windows操作系统中,内存映射文件利用虚拟内存机制,将磁盘上的文件直接映射到进程的地址空间,允许程序以访问内存的方式操作...

    Delph/XE如何应用共享内存映射文件(源代码)

    在Delphi XE中,内存映射文件是一种高效的数据共享机制,它允许多个进程之间共享数据,而无需通过网络或磁盘I/O进行通信。这种技术尤其适用于需要快速交互的进程间通信(IPC)。以下是对标题和描述中涉及的知识点的...

    内存映射文件(学习资料)

    ### 内存映射文件详解 #### 一、概述 内存映射文件是一种高级的数据管理技术,被广泛应用于操作系统及应用程序的设计中。本篇内容基于一份关于“内存映射文件”的学习资料,深入探讨了这一主题的核心概念及其应用...

    vc 内存映射文件.doc

    ### vc 内存映射文件知识点详解 #### 一、内存映射文件概念与应用场景 内存映射文件(Memory-Mapped File)是一种特殊的技术手段,主要用于实现文件与内存之间的高效交互。这种技术允许应用程序像访问内存一样直接...

    8.4 内存映射文件----

    内存映射文件是Windows操作系统提供的一种高效访问大文件的技术,它允许程序将文件直接映射到进程的虚拟地址空间中,使得对文件的操作就像是在操作内存一样。这种技术在处理大文件,特别是需要频繁读取的数据时,比...

    Visual C++ .NET环境下采用内存映射文件设计超大文件数据编辑器

    Visual C++ .NET 提供了一种高效的方法来解决这个问题,那就是利用内存映射文件(Memory-Mapped Files)。本文将深入探讨如何在Visual C++ .NET环境下使用内存映射文件设计一个能够处理超大文件数据的编辑器。 首先...

    利用内存映射文件技术实现进程间通信

    利用内存映射文件技术实现进程间通信,自pudn程序员联合开发网下载

    Csharp内存映射文件包含源码

    内存映射文件(Memory-Mapped File)是C#编程中一种高效的数据访问技术,它允许程序将文件直接映射到进程的虚拟地址空间,从而能够像访问内存一样访问文件内容。这种方式在处理大文件时特别有用,因为它避免了频繁的...

    VC++中使用内存映射文件处理大文件.doc

    ### VC++中使用内存映射文件处理大文件 在计算机编程领域,特别是在处理大量数据时,内存映射技术成为了一种高效的数据访问手段。本文将详细介绍如何在VC++(Visual C++)环境下利用内存映射文件(memory-mapped ...

    C# - 使用内存映射文件的高效文件 I/O

    在这个例子中:我们为内存映射文件定义文件路径 ( filePath) 和大小 ( )。fileSize在本例中,我们正在处理一个 100 MB 的文件。我们使用创建或打开内存映射文件MemoryMappedFile.CreateFromFile。如果该文件不存在,...

    基于内存映射文件技术的海量影像数据快速读取方法.pdf

    ### 基于内存映射文件技术的海量影像数据快速读取方法 #### 摘要与背景 随着信息技术和传感器技术的迅速发展,遥感图像的数据量呈现几何级数的增长趋势。传统的文件读取方法(如通过文件指针读取文件)仅能正确...

    基于内存映射文件技术的海量影像数据快速读取方法

    ### 基于内存映射文件技术的海量影像数据快速读取方法 #### 摘要与背景 随着信息技术和传感器技术的迅速发展,遥感图像的数据量正在以惊人的速度增长,从早期的几兆到现今动辄数百兆乃至数十GB的规模。这种巨大的...

    用内存映射文件方法处理大文件

    内存映射文件(Memory-Mapped File)是一种在操作系统层面实现的高效文件处理技术,它允许程序将文件直接映射到进程的虚拟地址空间中,使得文件数据可以像访问内存一样被读写。这种方式大大简化了大文件处理的过程,...

    STL文件的读取(普通文件解析与内存映射文件解析) cpp&stl

    在本实例中,我们将深入探讨如何使用C++和STL库来读取STL文件,特别关注两种不同的读取方法:普通文件解析和内存映射文件解析,并比较它们的性能差异。 首先,我们来看STL文件的基本结构。每个STL文件由多个三角...

    使用内存映射文件加快文件操作速度

    ### 使用内存映射文件加快文件操作速度 在计算机科学领域,提高文件操作效率一直是系统优化的重要环节之一。本文将深入探讨如何通过使用内存映射文件(Memory-Mapped Files)来加速文件读写过程,特别是在使用VB...

    内存映射读写文件的方法

    内存映射文件(Memory-Mapped File)是一种在操作系统层面上高效读写大文件的技术,它允许应用程序将文件的内容直接映射到进程的虚拟地址空间中,使得数据的读写如同操作内存一样快速。这种方式在处理大数据量时尤其...

    大文件读写内存映射.rar

    需要注意的是,由于内存映射文件可能跨越多个页,所以部分写操作可能导致整个页被刷新到磁盘,这可能会有性能影响。 5. 关闭映射:完成操作后,使用`unmap`方法释放内存映射,然后关闭文件。这会确保所有未同步的...

    内存映射文件实现大数据量快速存储

    内存映射文件(Memory-Mapped File)是一种在操作系统层面实现高效大数据处理的技术,它允许将文件的内容直接映射到进程的虚拟内存空间中,使得应用程序可以像操作普通内存一样读写文件,从而实现快速的数据存取。...

Global site tag (gtag.js) - Google Analytics