What is the CharBuffer clear() method in Java?

The java.nio.CharBuffer is a class we can use to store a buffer of characters. We can use this class’s clear() method to clear a buffer. Clearing a buffer means that:

  • We set the buffer position to 0.
  • We set the buffer limitLimit of a buffer is its first index that should not be read or written. to the buffer capacityCapacity of a buffer the number of elements it contains..
  • We discard the mark. Marking a position means recording a position which can be restored by the CharBuffer.reset() method. This marked position is discarded by the CharBuffer.reset() method.

The actual contents of the buffer are not erased by invoking the clear() method.

Declaration

The CharBuffer.clear() method is declared as follows:

buff.clear()
  • buff: The CharBuffer to be cleared.

Return value

The CharBuffer.clear() method returns the CharBuffer buff after clearing it.

Code

Consider the code snippet below, which demonstrates the use of the CharBuffer.clear() method:

import java.nio.*;
import java.util.*;
public class main {
public static void main(String[] args) {
int n1 = 4;
CharBuffer buff1 = CharBuffer.allocate(n1);
buff1.put('a');
buff1.put('f');
buff1.limit(3);
buff1.mark();
System.out.println("buff1: " + Arrays.toString(buff1.array()));
System.out.println("position at(before clear): " + buff1.position());
System.out.println("Limit at(before clear): " + buff1.limit());
buff1.mark();
System.out.println("clear()");
buff1.clear();
System.out.println("position at(after rewind): " + buff1.position());
System.out.println("Limit at(before clear): " + buff1.limit());
}
}

Explanation

  • A CharBuffer buff1 is declared in line 7 with capacity n1 = 4.
  • Two elements are added to buff1 using the put() method in line 8-9 . After adding the first element, the position of buff1 is incremented from 0 to 1. After adding the second element, the position of buff1 is incremented from 1 to 2.
  • The position of buff1 before clearing is 2. After calling the clear() method in line 21, the position of buff1 is set to 0.
  • The limit of buff1 is set to 3 using the limit() method in line 11. The limit of buff1 before clearing it is 3. After calling the clear() method in line 21, the limit of buff1 is set to its capacity which is 4.
  • The position of buff1 is marked to 2 using the mark() method in line 12. After calling the clear() method in line 21, the mark of buff1 is discarded and the position is set to 0.

Free Resources

Copyright ©2025 Educative, Inc. All rights reserved