如何相对于标记翻转ByteBuffer?

时间:2012-09-12 03:31:09

标签: java nio

是否有内置的方式,或者,最简单的方法是,相对于标记翻转java NIO ByteBuffer?

也就是说,flip()设置limit := position然后设置position := 0。我希望flipToMark()例程设置limit := position然后设置position := mark

2 个答案:

答案 0 :(得分:5)

翻转会清除标记,但遗憾的是buffer.flip().reset()无效。

buffer.limit(buffer.position()).reset()怎么样?

答案 1 :(得分:0)

在许多情况下,创建从 mark 开始的视图缓冲区可能更容易(例如使用 slice()),而不是实际设置 mark。在这种情况下,您可以使用常规的 flip() 方法。