从channel读取或写入的操作都需要经过Buffer来读取,其代表着内存的一块存储区域。常用的Buffer有ByteBuffer,其有HeapByteBuffer或DirectByteBuffer两种实现,这里主要是针对heap的。
Buffer的用法
在写入数据后,需要读取数据时,需要调用flip方法。
在读完数据后,要使用clear方法清空buffer。
Buffer主要包含三个属性: capacity,position和limit。
capacity代表整个Buffer的最大大小,而position代表当前读写的位置。最关键的limit是指当前最大的读写位置,在写模式下,limit等于capacity;在读模式下,limit等于写模式下的postion。
在buffer的write mode调用flip后,position会置0,而limit会置为之前position的值。