读书人

NIO学习札记二(Buffer)

发布时间: 2013-07-09 09:50:48 作者: rapoo

NIO学习笔记二(Buffer)

Buffer capacity, position and limit in write and read mode.

?描述如下:

capacity:Buffer的容量,Buffer可以写入数据的容量大小,已Byte为单位。position:指示当前数据读写的位置,主要是在于高速Buffer下个要读或者写的位置是什么。limit:写入数据时与capacity概念一样,表示可以写入多少数据;读数据代表可读多少数据。

4、Buffer 的类型

ByteBufferMappedByteBufferCharBufferDoubleBufferFloatBufferIntBufferLongBufferShortBuffer

??? 可将各种数据类型对Buffer读写。其中,MappedByteBuffer比较特殊,后面再提。

?

4、Buffer 的分配、写数据、flip、读数据

????? 空间分配:每种Buffer的类型都有allocate()方法,用来分配初始Buffer的大小。????? 写数据:两种方式,一是从Channel写入Buffer;二是通过代码put方法放入数据。

????? flip:flip方法,表示buffer已经写完数据了,可以进行读了。

????? 读数据:两种方式,一是将Buffer的数据写入Channel中;二是通过get方法获取数据。

5、rewind、clear与compact、mark与reset

????? rewind方法:将position属性重置为0,可以重读Buffer中的内容。

????? clear与compact:clear清空整个Buffer,数据被清除,position被设置为0,从读模式转换为写模式;

???????????????????????????? compact清空已读的数据,将未读的数据放置在前面,position被设置为未读的数据位置。

????? mark与reset:mark标记已读的位置,当想回到这个标记的时候,调用reset方法,将会回来。

?

读书人网 >编程

热点推荐