Java Buffer position()方法及示例
java.nio.Buffer类 的 position(int newPosition) 方法是用来设置这个缓冲区的位置。如果标记被定义并且大于新的位置,那么它将被丢弃。
语法
public Buffer position(int newPosition)
参数。该方法以newPosition为参数,是新的位置值。它必须是非负值,并且不大于当前的限制。
返回值: 该方法返回这个缓冲区。
下面是说明 position() 方法的例子。
例子 1 :
// Java program to demonstrate// position() method import java.nio.*;import java.util.*; public class GFG { public static void main(String[] args) { byte[] barr = { 10, 20, 30, 40 }; // creating object of ByteBuffer // and allocating size capacity ByteBuffer bb = ByteBuffer.wrap(barr); // Typecasting ByteBuffer into Buffer Buffer bb1 = (Buffer)bb; // try to set the position at index 2 // using position() method bb1.position(2); // Set this buffer mark position bb1.mark(); // try to set the position at index 4 // using position() method bb1.position(4); // display position System.out.println("position before reset: " + bb.position()); // try to call reset() to restore // to the position we marked bb1.reset(); // display position System.out.println("position after reset: " + bb1.position()); }}
输出:
position before reset: 4position after reset: 2
例子 2 :
// Java program to demonstrate// position() method import java.nio.*;import java.util.*; public class GFG { public static void main(String[] args) { // creating object of ByteBuffer // and allocating size capacity ByteBuffer bb = ByteBuffer.allocate(4); // Typecasting ByteBuffer into Buffer Buffer bb1 = (Buffer)bb; // try to set the position at index 1 // using position() method bb1.position(3); // display position System.out.println("position before clear: " + bb1.position()); // try to clear the Buffer // using clear() method bb1.clear(); // display position System.out.println("position after clear: " + bb1.position()); }}输出:
position before clear: 3position after clear: 0
参考资料: https://docs.oracle.com/javase/9/docs/api/java/nio/Buffer.html#position-int-
