Skip to content
Related Articles

Related Articles

ByteBuffer rewind() methods in Java with Examples
  • Last Updated : 16 Jul, 2019

The rewind() method of java.nio.ByteBuffer Class is used to rewind this buffer. The position is set to zero and the mark is discarded. Invoke this method before a sequence of channel-write or get operations, assuming that the limit has already been set appropriately. Invoking this method neither changes nor discards the mark’s value.

Syntax:

public ByteBuffer rewind()

Return Value: This method returns this buffer.

Below are the examples to illustrate the rewind() method:

Examples 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 ByteBuffer
        // using allocate() method
        ByteBuffer byteBuffer = ByteBuffer.allocate(4);
  
        // put byte value in byteBuffer
        // using put() method
        byteBuffer.put((byte)20);
        byteBuffer.put((byte)'a');
  
        // print the byte buffer
        System.out.println("Buffer before operation: "
                           + Arrays.toString(byteBuffer.array())
                           + "\nPosition: " + byteBuffer.position()
                           + "\nLimit: " + byteBuffer.limit());
  
        // rewind the Buffer
        // using rewind() method
        byteBuffer.rewind();
  
        // print the bytebuffer
        System.out.println("\nBuffer after operation: "
                           + Arrays.toString(byteBuffer.array())
                           + "\nPosition: " + byteBuffer.position()
                           + "\nLimit: " + byteBuffer.limit());
    }
}
Output:
Buffer before operation: [20, 97, 0, 0]
Position: 2
Limit: 4

Buffer after operation: [20, 97, 0, 0]
Position: 0
Limit: 4

Examples 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 ByteBuffer
        // using allocate() method
        ByteBuffer byteBuffer = ByteBuffer.allocate(5);
  
        // put byte value in byteBuffer
        // using put() method
        byteBuffer.put((byte)20);
        byteBuffer.put((byte)30);
        byteBuffer.put((byte)40);
  
        // mark will be going to discarded by rewind()
        byteBuffer.mark();
  
        // print the buffer
        System.out.println("Buffer before operation: "
                           + Arrays.toString(byteBuffer.array())
                           + "\nPosition: " + byteBuffer.position()
                           + "\nLimit: " + byteBuffer.limit());
  
        // Rewind the Buffer
        // using rewind() method
        byteBuffer.rewind();
  
        // print the buffer
        System.out.println("\nBuffer after operation: "
                           + Arrays.toString(byteBuffer.array())
                           + "\nPosition: " + byteBuffer.position()
                           + "\nLimit: " + byteBuffer.limit());
    }
}
Output:
Buffer before operation: [20, 30, 40, 0, 0]
Position: 3
Limit: 5

Buffer after operation: [20, 30, 40, 0, 0]
Position: 0
Limit: 5

Reference: https://docs.oracle.com/javase/9/docs/api/java/nio/ByteBuffer.html#rewind–

Attention reader! Don’t stop learning now. Get hold of all the important Java Foundation and Collections concepts with the Fundamentals of Java and Java Collections Course at a student-friendly price and become industry ready. To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

My Personal Notes arrow_drop_up
Recommended Articles
Page :