特性:
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传递参数,指定锁定范围,以及是独占锁还是共享锁(有些系统不支持共享锁,因此可能得到仍是独占锁)