JAVA NIO—缓冲区(Buffer)
一.概述
NIO Channel读写时都是面向缓冲区,即:数据从Channel读入缓冲区,并从缓冲区写入Channel。缓冲区本质上是一个可以写入数据的内存块,此内存块包含在NIO Buffer对象中,该对象提供了一组方法,可以更轻松地使用内存块。
二.Buffered用法
Buffer读写数据通常遵循以下四个步骤:
- 将数据写入缓冲区
- 调用buffer.flip()
- 从缓冲区读取数据
- 调用buffer.clear()
将数据写入缓冲区时,缓冲区会跟踪写入的数据量,一旦需要读取数据时,就需要调用flip()方法将缓冲区从写入模式切换到读取模式。,读取模式下,缓冲区允许您读取写入缓冲区的所有数据。一旦数据读取完毕,就需要函数清除缓冲区,以便再次写入。清除缓冲区有两个函数:clear()清除整个缓冲区;compact() 仅清除您已阅读的数据。
三.Buffer分类
Buffer分类如下:
- ByteBuffer
- MappedByteBuffer
- CharBuffer
- DoubleBuffer
- FloatBuffer
- IntBuffer
- LongBuffer
- ShortBuffer
这些Buffer类型代表不同的数据类型。它们允许我们使用char,short,int,long,float或double来处理缓冲区中的字节。