|
|||||||||
软件包 java.nio
定义作为数据容器的缓冲区,并提供其他 NIO 包的概述。请参见:
描述
类摘要 | |
---|---|
Buffer | 一种用于特定的基本类型数据的容器。 |
ByteBuffer | 字节缓冲区。 |
ByteOrder | 字节顺序的类型安全枚举。 |
CharBuffer | 字符缓冲区。 |
DoubleBuffer | double 缓冲区。 |
FloatBuffer | float 缓冲区。 |
IntBuffer | int 缓冲区。 |
LongBuffer | long 缓冲区。 |
MappedByteBuffer | 直接字节缓冲区,其内容是文件的内存映射区域。 |
ShortBuffer | short 缓冲区。 |
异常摘要 | |
---|---|
BufferOverflowException | 当相关 put 操作达到目标缓冲区限制时,抛出此未经检查的异常。 |
BufferUnderflowException | 当相关 get 操作达到源缓冲区限制时,抛出此未经检查的异常。 |
InvalidMarkException | 当试图重置一个尚未定义其标记的缓冲区时,抛出此未检查的异常。 |
ReadOnlyBufferException | 当在只读缓冲区上调用内容可变(content-mutation)的方法(例如 put 或 compact 方法)时,抛出此未经检查的异常。 |
软件包 java.nio 的描述
定义作为数据容器的缓冲区,并提供其他 NIO 包的概述。
NIO API 的集中抽象为:
缓冲区,它们是数据容器;
字符集 及其相关解码器 和编码器,
它们在字节和 Unicode 字符之间进行转换;各种类型的通道,它们表示到能够执行 IO 操作的
实体的连接;以及选择器 和选择键,它们与
可选择信道 一起定义了多路的、无阻塞的
I/O 设施。
java.nio 包定义了缓冲区类,这些类用于所有 NIO API。java.nio.charset
包中定义了字符集 API,java.nio.channels
包中定义了信道和选择器 API。每个子包都具有自己的服务提供程序接口 (SPI) 子包,SPI 子包的内容可用于扩展平台的默认实现或构造替代实现。
缓冲区
描述
Buffer
位置,界限和容量;
清除,反转,重绕和标记/重置ByteBuffer
Get/put,压缩,查看;分配,包装 MappedByteBuffer
映射到文件的字节缓冲区 CharBuffer
Get/put,压缩;分配,包装 DoubleBuffer
' ' FloatBuffer
' ' IntBuffer
' ' LongBuffer
' ' ShortBuffer
' ' ByteOrder
字节顺序的类型安全的枚举
缓冲区 是一个固定数据量的指定基本类型的数据容器。除内容之外,缓冲区还具有位置 和界限,其中位置是要读写的下一个元素的索引,界限是第一个应该读写的元素的索引。基本 Buffer
类定义了这些属性以及清除、反转 和重绕 方法,用以标记 当前位置,以及将当前位置重置 为前一个标记处。
每个非布尔基本类型都有一个缓冲区类。每个类定义了一系列用于将数据移出或移入缓冲区的 get 和 put 方法,用于压缩、复制 和切片 缓冲区的方法,以及用于分配 新缓冲区和将现有数组包装 到缓冲区中的静态方法。
因为字节缓冲区可以用作 I/O 操作的源缓冲区和目标缓冲区,所以可以对它们加以区分。它们还支持其他缓冲区类所没有的几个特性:
可以将字节缓冲区分配为一个直接 缓冲区,在这种情况下,Java 虚拟机将最大限度地直接在缓冲区上执行本机 I/O 操作。
可以通过
mapping
将文件区域直接包装到内存中来创建字节缓冲区,在这种情况下,可以使用
MappedByteBuffer
类中定义的几个其他文件相关的操作。字节缓冲区提供了对其内容的访问(其内容作为任何非布尔基本类型的异类或同类二进制数据序列),访问要么是以 big-endian 字节顺序进行,要么是以 little-endian 字节顺序进行。
除非另有说明,否则向此包的任何类或接口中的构造方法或方法传递 null 变量,都会抛出 NullPointerException
。
- 从以下版本开始:
- 1.4
所有类
|
|||||||||