Java IntBuffer rewind()方法及示例

来源:这里教程网 时间:2026-02-17 20:52:24 作者:

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-

相关推荐