`

读取超大文件的两个类BufferedReader和MappedByteBuffer

阅读更多

BufferedRead提供了一套缓冲机制,读取文件时先在内存中建立一块缓冲区,然后读取文件填满缓冲区,

然后在缓冲区中对文件进行实际的操作,当缓冲区读完后调用read方法继续填充缓冲区;

MappedByteBuffer将文件映射到虚拟内存中,如果文件比较大可以分段映射,分段映射需要指定文件的具体映射部分;在对内存中的文件进行操作,大大提高效率;MappedByteBuffer map(int mode,long position,long size); 可以把文件的从position开始的size大小的区域映射为内存映像文件,mode指出了可访问该内存映像文件的方式:READ_ONLY(只读),READ_WRITE(读写),PRIVATE(专用)

a. READ_ONLY,(只读):读取缓冲区中的数据

b. READ_WRITE(读/写): 对得到的缓冲区的更改最终将传播到文件;该更改对映射到同一文件的其他程序不一定是可见的。 (MapMode.READ_WRITE)

c. PRIVATE(专用):对得到的缓冲区的更改不会传播到文件,并且该更改对映射到同一文件的其他程序也不是可见的;相反,会创建缓冲区已修改部分的专用副本。 (MapMode.PRIVATE)

具体使用可以参考API哦。。。。

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics