NIO中的缓冲区是一个用于特定基本数据类型的容器。在java.io包中定义,所有缓冲区都是Buffer抽象类的子类。Buffer主要用于和NIO通道进行交互,数据可以从通道读入缓冲区,也可以从缓冲区写入到通道中。Buffer就像一个数组,可以保存多个相同类型的数据。
缓冲区的类型
根据数据类型的不同,缓冲区的类型分为以下几类,其中不包括boolean对应的Buffer:
ByteBuffer:字节缓冲区
CharBuffer:字符缓冲区
DoubleBuffer:双精浮点缓冲区
FloatBuffer:单精浮点缓冲区
IntBuffer:整型缓冲区
LongBuffer:长整型缓冲区
ShortBuffer:短整型缓冲区
这些不同的Buffer类都采用相似的方法操作数据,只不过操作的数据类型不同而已。例如:
获取缓冲区(以字节缓冲区为例):ByteBuffer buffer = ByteBuffer.allocate(int capacity)或ByteBuffer buffer = ByteBuffer.allocateDirect(int capacity)。
存入数据(以字节缓冲区为例):buffer.put("a".getBytes()),提供单个字节存入或以字节数组的形式存入。
取出数据(以字节缓冲区为例):buffer.get(),提供获取单个字节的