博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java.nio
阅读量:6374 次
发布时间:2019-06-23

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

hot3.png

特性:

1,字符集编码器和解码器

2,

3,内存映射文件

4,文件加锁机制

内存映射相关:

虚拟内存机制的利用, 文件通道(channel),通道是用于磁盘文件的一种抽象,它使我们可以访问诸如内存映射、文件加锁机制以及 文件间快速数据传递等操作系统特性。

FileChannel的map方法可以返回一个MappedByteBuffer (继承自ByteBuffer), 可以指定区域与模式:

FileChannel.MapMode.READ_ONLY:只读的

 FileChannel.MapMode.READ_WRITE: 对映射区的修改会在某个时刻写回文件,如果多个程序同时映射该文件,其行为依赖操作系统

FileChannel.MapMode.PRIVATE:缓冲区可写,但是不会影响到文件

使用nio文件映射需要的类:

java.nio.Buffer

java.nio.ByteBuffer

java.nio.MappedByteBuffer

java.nio.FileChannel,  文件通道可以通过FileInput/OutputStream、RandomAccessFile得到。

ByteBuffer可以检查缓冲区是否已满,查看当前的界限(超过它继续访问没有意义),还可以想DataInput、DataOutput一样处理二进制数据,也支持随机访问。相应的,处理文本数据可以使用java.nio.CharBuffer

文件锁:

可以使用FileChannel的lock 、tryLock 、release 方法使用锁,可以给lock传递参数,指定锁定范围,以及是独占锁还是共享锁(有些系统不支持共享锁,因此可能得到仍是独占锁)

转载于:https://my.oschina.net/u/255456/blog/368192

你可能感兴趣的文章
77. Combinations
查看>>
WEB前端开发的思考与感悟
查看>>
实现了所有主流APP的分类切换效果,可快速接入,灵活扩展(swift)
查看>>
微信自动跳转浏览器打开APP(APK)下载链接
查看>>
==与===的区别
查看>>
机器学习实验笔记
查看>>
不同工具查看代码分支diff的差异
查看>>
一文 | 跨域及其解决方案
查看>>
白话Java I/O模型
查看>>
[TsAdmin]--一款基于Vue.js+Element UI的单页无刷新(无iframe)多选项卡的后台管理系统模板...
查看>>
排列组合技术
查看>>
哈工大发明“电子体毛”,让机器人学会“敏感”
查看>>
上传一张照片,让算法告诉你是否患有抑郁症
查看>>
VR厂商唯晶科技获2800万C+轮融资,曾开发过游戏《圣女之歌》
查看>>
Countly 19.02.1 发布,实时移动和 web 分析报告平台
查看>>
TCP连接中time_wait在开发中的影响-搜人以鱼不如授之以渔
查看>>
Oracle数据库机出新帮助不同规模企业迈向云端
查看>>
前端通信:ajax设计方案(六)--- 全局配置、请求格式拓展和优化、请求二进制类型、浏览器错误搜集以及npm打包发布...
查看>>
Android捕获监听Home键、最近任务列表键
查看>>
微服务分布式企业框架 Springmvc+mybatis+shiro+Dubbo+ZooKeeper+Redis+KafKa
查看>>