博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
NIO学习笔记(2)-MappedByteBuffer文件映射到内存
阅读量:6870 次
发布时间:2019-06-26

本文共 737 字,大约阅读时间需要 2 分钟。

跟mmap不同的是,这个可以改变文件的大小

 
  1. public static void map() throws IOException{ 
  2.         RandomAccessFile fin = new RandomAccessFile("e:/map.txt""rw"); 
  3.          
  4.         FileChannel finc = fin.getChannel(); 
  5.         MappedByteBuffer buf = finc.map(MapMode.READ_WRITE, 020); 
  6.         //buf.put(new String("01234567890123456789").getBytes()); //写
  7.         byte[] bytes = new byte[20]; 
  8.         buf.get(bytes); 
  9.         System.out.println(new String(bytes)); 
  10.         buf.force(); 
  11.         finc.close(); 
  12.     } 

 下面是别人写的口诀:

三个方法:

a. fore();缓冲区是READ_WRITE模式下,此方法对缓冲区内容的修改强行写入文件

b. load()将缓冲区的内容载入内存,并返回该缓冲区的引用

c. isLoaded()如果缓冲区的内容在物理内存中,则返回真,否则返回假

三个特性:

调用信道的map()方法后,即可将文件的某一部分或全部映射到内存中,映射内存缓冲区是个直接缓冲区,继承自ByteBuffer,但相对于ByteBuffer,它有更多的优点:

a. 读取快

b. 写入快

c. 随时随地写入

本文转自 dogegg250 51CTO博客,原文链接:http://blog.51cto.com/jianshusoft/692377,如需转载请自行联系原作者

你可能感兴趣的文章
MyBatis之ResultMap标签
查看>>
kubernetes-1.11.0集群部署之master集群 (二)
查看>>
React基础再回顾
查看>>
《编写可维护的JavaScript》读书笔记
查看>>
Verdaccio 搭建私有 NPM
查看>>
我的友情链接
查看>>
IDEA PermGen space内存溢出
查看>>
Create a RHEL6 PXE Installation Server
查看>>
【Android游戏开发二十二】(图文详解)游戏中灵活实现动画播放!
查看>>
桌面支持--Office2013没有Office Picture Manage怎么安装
查看>>
chmod修改文件权限失败
查看>>
数据结构与算法-->互为素数
查看>>
Linux系统学习方法——写给小白
查看>>
Nginx服务器报500 Internal Server Error错误
查看>>
链表的游标实现
查看>>
记一次在spring环境中 使用模板模式
查看>>
Edraw Max(亿图图示)新手福音:教你思维导图的简单画法!
查看>>
go读取超大文件内容并发写入到redis的功能
查看>>
MySQL数据库中的Date,DateTime,TimeStamp和Time类型
查看>>
位运算实现输出数字的二进制
查看>>