Java I/O How to - Duplicate CharBuffer








Question

We would like to know how to duplicate CharBuffer.

Answer

import java.nio.CharBuffer;
/*from www .  j  a va 2 s  . co m*/
public class MainClass {
  public static void main(String[] argv) throws Exception {
    CharBuffer buffer = CharBuffer.wrap("01234567");

    buffer.position(3).limit(6).mark().position(5);

    CharBuffer dupeBuffer = buffer.duplicate();

    buffer.clear();

    println(buffer);
    println(dupeBuffer);

    dupeBuffer.reset();
    println(dupeBuffer);

    dupeBuffer.clear();
    println(dupeBuffer);
  }

  private static void println(CharBuffer cb) {
    System.out.println("pos=" + cb.position() + ", limit=" + cb.limit() + ", capacity="
        + cb.capacity() + ": '" + cb + "'");
  }
}

The code above generates the following result.