Java I/O How to - Rewind a ByteBuffer








Question

We would like to know how to rewind a ByteBuffer.

Answer

   /*from  w w w.  ja  v a  2 s .c o m*/

import java.nio.ByteBuffer;

public class MainClass {
  private static final int BSIZE = 1024;

  public static void main(String[] args) {
    ByteBuffer bb = ByteBuffer.allocate(BSIZE);
    bb.asCharBuffer().put("Howdy!");
    char c;
    while ((c = bb.getChar()) != 0)
      System.out.print(c + " ");
    System.out.println();

    bb.rewind();
    // Store and read a short:
    bb.asShortBuffer().put((short) 471142);
    System.out.println(bb.getShort());

  }
}

The code above generates the following result.