Java IntBuffer rewind()方法及示例
java.nio.IntBuffer类的 rewind() 方法是用来倒退这个缓冲区的。位置被设置为零,标记被丢弃。在一连串的channel-write或get操作之前调用这个方法,假设限制已经被适当地设置了。调用这个方法既不改变也不丢弃标记的值。
语法
public final IntBuffer rewind()
参数: 该方法不接受任何参数。
返回值: 该方法返回这个缓冲区。
下面是一些例子来说明rewind()方法。
例子 1 :
// Java program to demonstrate// rewind() method import java.nio.*;import java.util.*; public class GFG { public static void main(String[] args) { // defining and allocating IntBuffer // using allocate() method IntBuffer intBuffer = IntBuffer.allocate(4); // put char value in intBuffer // using put() method intBuffer.put(10); intBuffer.put(20); // print the int buffer System.out.println( "Buffer before operation: " + Arrays.toString( intBuffer.array()) + "\nPosition: " + intBuffer.position() + "\nLimit: " + intBuffer.limit()); // rewind the Buffer // using rewind() method intBuffer.rewind(); // print the intbuffer System.out.println( "\nBuffer after operation: " + Arrays.toString( intBuffer.array()) + "\nPosition: " + intBuffer.position() + "\nLimit: " + intBuffer.limit()); }}
输出:
Buffer before operation: [10, 20, 0, 0]Position: 2Limit: 4Buffer after operation: [10, 20, 0, 0]Position: 0Limit: 4
例子 2 :
// Java program to demonstrate// rewind() method import java.nio.*;import java.util.*; public class GFG { public static void main(String[] args) { // defining and allocating IntBuffer // using allocate() method IntBuffer intBuffer = IntBuffer.allocate(5); // put int value in IntBuffer // using put() method intBuffer.put(10); intBuffer.put(20); intBuffer.put(30); // mark will be going to // discarded by rewind() intBuffer.mark(); // print the buffer System.out.println( "Buffer before operation: " + Arrays.toString( intBuffer.array()) + "\nPosition: " + intBuffer.position() + "\nLimit: " + intBuffer.limit()); // Rewind the Buffer // using rewind() method intBuffer.rewind(); // print the buffer System.out.println( "\nBuffer after operation: " + Arrays.toString( intBuffer.array()) + "\nPosition: " + intBuffer.position() + "\nLimit: " + intBuffer.limit()); }}输出:
Buffer before operation: [10, 20, 30, 0, 0]Position: 3Limit: 5Buffer after operation: [10, 20, 30, 0, 0]Position: 0Limit: 5
参考资料: https://docs.oracle.com/javase/9/docs/api/java/nio/IntBuffer.html#rewind-
