Java中的NIO
2016-02-25 20:40
423 查看
NIO API的集中抽象为:
l 缓冲区, 它们是数据容器;
缓冲区是一个固定数据量的指定基本类型的数据容器. 除内容之外, 缓冲区还具有位置和界限, 其中位置是要读写的下一个元素的索引, 界限是第一个应该读写的元素的索引. 基本Buffer类定义了这些属性以及清除,反转和重绕方法, 用以标记当前位置, 以及将当前位置重置为前一个标记处.
每个非布尔基本类型都有一个缓冲区类. 每个类定义了一系列用于将数据移出或移入缓冲区的get和put方法, 用于压缩, 复制和切片缓冲区的方法, 以及用于分配新缓冲区和将现有数组包装到缓冲区中的静态方法.
因为字节缓冲区可以用作I/O操作的源缓冲区和目标缓冲区, 所以可以对它们加以区分. 它们还支持其他缓冲区类所没有的几个特性:
• 可以将字节缓冲区分配为一个直接缓冲区, 在这种情况下, Java虚拟机将最大限度地直接在缓冲区上执行本机I/O操作.
• 可以通过mapping将文件区域直接包装到内存中来创建字节缓冲区, 在这种情况下, 可以使用MappedByteBuffer类中定义的几个其他文件相关的操作.
• 字节缓冲区提供了对其内容的访问(其内容作为任何非布尔基本类型的异类或同类二进制数据序列), 访问要么是以big-endian字节顺序进行, 要么是以little-endian字节顺序进行.
l 字符集, 及其相关解码器和编码器,它们在字节和Unicode字符之间进行转换;
l 各种类型的通道, 它们表示能够执行IO操作的实体的连接; 以及选择器和选择键, 它们与可选择信道一起定义了多路的,无阻塞的I/O设施.
Feb 25, 2016
l 缓冲区, 它们是数据容器;
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 |
每个非布尔基本类型都有一个缓冲区类. 每个类定义了一系列用于将数据移出或移入缓冲区的get和put方法, 用于压缩, 复制和切片缓冲区的方法, 以及用于分配新缓冲区和将现有数组包装到缓冲区中的静态方法.
因为字节缓冲区可以用作I/O操作的源缓冲区和目标缓冲区, 所以可以对它们加以区分. 它们还支持其他缓冲区类所没有的几个特性:
• 可以将字节缓冲区分配为一个直接缓冲区, 在这种情况下, Java虚拟机将最大限度地直接在缓冲区上执行本机I/O操作.
• 可以通过mapping将文件区域直接包装到内存中来创建字节缓冲区, 在这种情况下, 可以使用MappedByteBuffer类中定义的几个其他文件相关的操作.
• 字节缓冲区提供了对其内容的访问(其内容作为任何非布尔基本类型的异类或同类二进制数据序列), 访问要么是以big-endian字节顺序进行, 要么是以little-endian字节顺序进行.
l 字符集, 及其相关解码器和编码器,它们在字节和Unicode字符之间进行转换;
l 各种类型的通道, 它们表示能够执行IO操作的实体的连接; 以及选择器和选择键, 它们与可选择信道一起定义了多路的,无阻塞的I/O设施.
Feb 25, 2016
相关文章推荐
- java操作xml的一个小例子
- Myeclipse如何自动创建hibernate 转载
- java中Collection/Collections;List/Set/Map;ArrayList/Vector/LinkedList;HashSet/HashMap/TreeSet/TreeMap
- spring学习小结4——bean 的作用域 和引入外部属性文件
- Java中级开发工程师知识点归纳
- spring学习小结——bean之间的关系 继承 依赖
- 快速排序-java
- Maven简明教程(3)---在eclipse中创建工程与基本命令介绍
- eclipse 常用插件
- Java 中带包的类的编译与执行
- springmvc和struts2的区别:
- 用java代码实现二叉树的遍历算法
- java设计模式之命令模式
- 判断其是否为一个回文串,java实现
- spring IOC和AOP的原理
- SpringMVC整合Shiro
- Java----再学习-----transient关键字
- Java语法基础4(思维导图)
- Spring中IOC和AOP的详细解释
- 学习JavaMail