Buffer mark()方法处理标记
方法Buffer mark()的作用:在此缓冲区的位置设置标记。标记有什么作用呢?
缓冲区的标记是一个索引,在调用reset()方法时,会将缓冲区的position位置重置为该索引。标记(mark)并不是必需的。定义mark时,不能将其定义为负数,并且不能让它大于position。如果定义了mark,则在将position或limit调整为小于该mark的值时,该mark被丢弃,丢弃后mark的值是-1。如果未定义mark,那么调用reset()方法将导致抛出InvalidMarkException异常。
import java.nio.ByteBuffer;
public class Test5{
public static void main(String[] args) {
byte[] bytes = new byte[] {1,2,3,4,5,6,7,8,9};
ByteBuffer buffer = ByteBuffer.wrap(bytes);
System.out.println("buterbuffer.capacity="+buffer.position());
System.out.println();
buffer.position(1);
buffer.mark();
System.out.println("buterbuffer.capacity="+buffer.position());
buffer.position(2); //改变位置
buffer.reset();
System.out.println();
System.out.println("buterbuffer.capacity="+buffer.position());
}
}

本文来自博客园,作者:孤独的执行者,转载请注明原文链接:https://www.cnblogs.com/chaojichantui/p/16112315.html
浙公网安备 33010602011771号