Buffer的flip到底做什么的?
What is the purpose of ByteBuffer's flip method? (And why is it called “flip”?)
- flip是将Buffer从"从I/O读取"的状态转变为"写到I/O"的状态:在多次调用
put
方法向Buffer写数据后,flip
会把limit
设置为position
,然后把position
设置为0。这样之后就能调用get
方法,或者说,从buffer
写出之前写入的那些内容。 - 在这之后,你可能想重新使用这个Buffer,那么为了"unflip"之,你需要调用
clear
。 也就是说:
- 从读到写:调用
flip
- 从写到读:调用
clear