特性:java
1,字符集编码器和解码器app
2,非阻塞的IO dom
3,内存映射文件编码
4,文件加锁机制spa
内存映射相关:操作系统
虚拟内存机制的利用, 文件通道(channel),通道是用于磁盘文件的一种抽象,它使咱们能够访问诸如内存映射、文件加锁机制以及 文件间快速数据传递等操做系统特性。.net
FileChannel的map方法能够返回一个MappedByteBuffer (继承自ByteBuffer), 能够指定区域与模式:blog
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传递参数,指定锁定范围,以及是独占锁仍是共享锁(有些系统不支持共享锁,所以可能获得还是独占锁)