类 | 描述 |
---|---|
Buffer |
用于特定原始类型的数据的容器。
|
ByteBuffer |
一个字节缓冲区。
|
ByteOrder |
字节顺序的类型安全枚举。
|
CharBuffer |
一个char缓冲区。
|
DoubleBuffer |
双缓冲。
|
FloatBuffer |
一个浮动缓冲区。
|
IntBuffer |
一个int缓冲区
|
LongBuffer |
一个很长的缓冲区。
|
MappedByteBuffer |
直接字节缓冲器,其内容是文件的存储器映射区域。
|
ShortBuffer |
一个短暂的缓冲。
|
异常 | 描述 |
---|---|
BufferOverflowException |
相对
放置操作达到目标缓冲区限制时抛出的未检查异常。
|
BufferUnderflowException |
当相对
get操作达到源缓冲区的限制时抛出未检查的异常。
|
InvalidMarkException |
当未定义其标记时尝试复位缓冲区时抛出未检查的异常。
|
ReadOnlyBufferException |
在只读缓冲区中调用诸如
put或
compact之类的内容突变方法时抛出未检查的异常。
|
NIO API的中心抽象是:
Buffers ,它们是数据的容器;
Charsets及其相关的解码器和编码器 ,
它在字节和Unicode字符之间进行转换;
Channels各种类型,代表连接
能够执行I / O操作的实体; 和
选择器和选择键 ,与
可选择的渠道定义了一个multiplexed, non-blocking
I/O设施。
java.nio包定义了在整个NIO API中使用的缓冲区类。 charset API在java.nio.charset
包中定义,通道和选择器API在java.nio.channels
包中定义。 这些子包中的每一个都有自己的服务提供商(SPI)子包,其内容可以用于扩展平台的默认实现或构建替代实现。
Buffers
描述
Buffer
Position, limit, and capacity;
clear, flip, rewind, and mark/resetByteBuffer
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
类定义了这些属性以及清除 , 翻转和倒带的方法 ,用于标记当前位置,并将位置重置为上一个标记。
每个非布尔基元类型都有一个缓冲区类。 每个类定义一组用于将数据移出和移入缓冲区的get和put方法,用于压缩 , 复制和分割缓冲区的方法,以及用于分配新缓冲区以及将现有阵列包装到一个缓冲区中的静态方法缓冲。
字节缓冲区的区别在于它们可以用作I / O操作的源和目标。 它们还支持其他缓冲区类中没有的几个功能:
字节缓冲区可以分配为direct缓冲区,在这种情况下,Java虚拟机将尽力在其上直接执行本地I / O操作。
mapping
可以将文件的一个区域直接创建到内存中,在这种情况下,可以使用MappedByteBuffer
类中定义的一些额外的文件相关操作。
一个字节缓冲区可以访问其内容,作为任何非布尔基元类型的非同类或均匀序列的binary data ,以大端或小端byte order 。
除非另有说明,否则将null参数传递给此程序包中任何类或接口中的构造函数或方法将导致抛出NullPointerException
。