输出为
刚写完数据 java.nio.DirectByteBuffer[pos=4 lim=10 cap=10] flip之后 java.nio.DirectByteBuffer[pos=0 lim=4 cap=10] 1 2 3 4 读取完数组 java.nio.DirectByteBuffer[pos=4 lim=4 cap=10] 常用方法上面的读写例子中,有几个常用的方法:
clear()这个方法用于清除mark和position,还有limit的位置:
public final Buffer clear() { position = 0; limit = capacity; mark = -1; return this; } flip()这个方法主要用于改变当前的Position为limit,主要是用于读取操作。
public final Buffer flip() { limit = position; position = 0; mark = -1; return this; } compact()这个方法在读取一部分数据的时候比较常用。
它会把当前的Position移到0,然后position+1移到1。
比如一段空间内容为:
123456789当position的位置在2时,调用compact方法,会变成:
345678989 isDirect()这个方法用于判断是否是直接内存。如果是返回true,如果不是返回false。
rewind()这个方法用于重置mark标记: