在Java NIO编程中,对缓冲区操作常常需要使用 java.nio.Buffer中的 flip()方法。
Buffer 中的 flip() 方法涉及到 Buffer 中的capacity、position、limit三个概念。
capacity:在读/写模式下都是固定的,就是我们分配的缓冲大小(容量)。
position:类似于读/写指针,表示当前读(写)到什么位置。
limit:在写模式下表示最多能写入多少数据,此时和capacity相同。在读模式下表示最多能读多少数据,此时和缓存中的实际
数据大小相同。
flip():Buffer有两种模式,写模式和读模式。在写模式下调用flip()之后,Buffer从写模式变成读模式。
那么limit就设置成了positi