[英]difference between bytebuffer.flip() and bytebuffer.rewind()
[英]What is the difference between rewind() and clear() of class ByteBuffer?
请注意,在JDK文档中, rewind()
和clear()
看起来类似于“清理” ByteBuffer
。 实际上存在旧数据,而且在频道写入或获取操作之前应该使用rewind()
而clear()
对应于频道读取或放置操作。
我对给定的描述感到困惑。 地球上这些对应物有什么区别?
区别在于clear
重置容量限制,因此准备缓冲区以便写入(并由您读取)其他数据,而rewind
不会对限制执行任何操作,因此可能会再次读取数据。
1)这是clear()方法:
public final Buffer clear() {
position = 0;
limit = capacity;
mark = -1;
return this;
}
clear()方法将缓冲区重置为空状态。 它不会更改缓冲区的任何数据元素,只是将容量限制和位置设置为0
2)这是rewind()方法:
public final Buffer rewind() {
position = 0;
mark = -1;
return this;
}
您可以使用rewind()返回并重新读取已翻转的缓冲区中的数据。 如您所见:它不会改变限制。 有时,在从缓冲区读取数据后,您可能希望再次读取它,rewind()是您的正确选择。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.