谁应该调用ByteBuffer.flip()

时间:2015-01-02 19:05:38

标签: java nio

我非常清楚何时需要翻转ByteBuffer 。我的问题指向put - 和get - 之间建立隐式合同以减少错误。

在将缓冲区提供给getter之前,推杆flip?或者在收到缓冲区后获取flip

我倾向于推杆翻转缓冲区,因为有意义的是,getter总是会收到准备好的缓冲区。

有先例吗?你做什么的?

1 个答案:

答案 0 :(得分:2)

据我所知,最佳做法是将缓冲区保持在可读/可放入状态,并在写入或获取之前立即保留flip(),然后立即compact()。作家/获得者应该自己这样做,而不是依靠其他人为他做这件事。请注意,应在compact()块中调用finally