Java中的NIO

NIO API的集中抽象为:

缓冲区, 它们是数据容器;

 

Buffers

Description

Buffer

Position, limit, and capacity;
clear, flip, rewind, and mark/reset

  ByteBuffer

Get/put, compact, views; allocate, wrap

    MappedByteBuffer

A byte buffer mapped to a file

  CharBuffer

Get/put, compact; allocate, wrap

  DoubleBuffer

' '

  FloatBuffer

' '

  IntBuffer

' '

  LongBuffer

' '

  ShortBuffer

' '

ByteOrder

Typesafe enumeration for byte orders

 

缓冲区是一个固定数据量的指定基本类型的数据容器. 除内容之外, 缓冲区还具有位置界限, 其中位置是要读写的下一个元素的索引, 界限是第一个应该读写的元素的索引. 基本Buffer类定义了这些属性以及清除,反转重绕方法, 用以标记当前位置, 以及将当前位置重置为前一个标记处.

每个非布尔基本类型都有一个缓冲区类. 每个类定义了一系列用于将数据移出或移入缓冲区的getput方法, 用于压缩, 复制切片缓冲区的方法, 以及用于分配新缓冲区和将现有数组包装到缓冲区中的静态方法.

因为字节缓冲区可以用作I/O操作的源缓冲区和目标缓冲区, 所以可以对它们加以区分. 它们还支持其他缓冲区类所没有的几个特性:

•   可以将字节缓冲区分配为一个直接缓冲区, 在这种情况下, Java虚拟机将最大限度地直接在缓冲区上执行本机I/O操作.

•   可以通过mapping将文件区域直接包装到内存中来创建字节缓冲区, 在这种情况下, 可以使用MappedByteBuffer类中定义的几个其他文件相关的操作.

•   字节缓冲区提供了对其内容的访问(其内容作为任何非布尔基本类型的异类或同类二进制数据序列), 访问要么是以big-endian字节顺序进行, 要么是以little-endian字节顺序进行.

字符集, 及其相关解码器编码器,它们在字节和Unicode字符之间进行转换;

l  各种类型的通道, 它们表示能够执行IO操作的实体的连接; 以及选择器和选择键, 它们与可选择信道一起定义了多路的,无阻塞的I/O设施.


Feb 25, 2016

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值