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)的方法(例如 putcompact 方法)时,抛出此未经检查的异常。
 

软件包 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 类定义了这些属性以及清除反转重绕 方法,用以标记 当前位置,以及将当前位置重置 为前一个标记处。

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

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

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

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

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

除非另有说明,否则向此包的任何类或接口中的构造方法或方法传递 null 变量,都会抛出 NullPointerException

从以下版本开始:
1.4