What is the CharBuffer put() method in Java?
java.nio.CharBuffer is a class that can be used to store a buffer of characters. The put() method of the java.nio.CharBuffer class is used to write a character to a buffer. The CharBuffer.put() method writes the character at the current
Declaration
The CharBuffer.put() method can be declared as:
buff1.put(x);
buff1: TheCharBufferin which the characterxwill be written.x: The character that will be written tobuff1.
Return value
The CharBuffer.put() method returns the CharBuffer buff1 after writing the character x to it.
Note:
- If the position of
buff1is not less than theof limit The first index of the buffer that should not be read or written buff1, theBufferOverflowExceptionis thrown.- If
buff1is read-only, theReadOnlyBufferExceptionis thrown.
Example
Example 1
Consider the code snippet below, which demonstrates the use of the CharBuffer.put() method.
import java.nio.*;import java.util.*;public class main {public static void main(String[] args) {int n1 = 5;int n2 = 4;try {CharBuffer buff1 = CharBuffer.allocate(n1);buff1.put('a');buff1.put('c');System.out.println("buff1: " + Arrays.toString(buff1.array()));System.out.println("position: " + buff1.position());} catch (IllegalArgumentException e) {System.out.println("Error!!! IllegalArgumentException");} catch (ReadOnlyBufferException e) {System.out.println("Error!!! ReadOnlyBufferException");}}}
Explanation
- A
CharBufferbuff1is declared in line 8. - An element is written to
buff1using theCharBuffer.put()method in line 9. After adding the first element, the position ofbuff1is incremented from 0 to 1. - Another element is written to
buff1using theCharBuffer.put()method in line 10. After adding the second element, the position ofbuff1is incremented from 1 to 2.
Example 2
As explained above, using the CharBuffer.put() method on a read-only buffer throws the ReadOnlyBufferException. Consider the code snippet below that demonstrates this.
import java.nio.*;import java.util.*;public class main {public static void main(String[] args) {int n1 = 5;int n2 = 4;try {CharBuffer buff1 = CharBuffer.allocate(n1);CharBuffer buff2 = buff1.asReadOnlyBuffer();buff2.put('a');buff2.put('c');System.out.println("buff2: " + Arrays.toString(buff2.array()));System.out.println("position: " + buff2.position());} catch (IllegalArgumentException e) {System.out.println("Error!!! IllegalArgumentException");} catch (ReadOnlyBufferException e) {System.out.println("Error!!! ReadOnlyBufferException");}}}
Explanation
- A
CharBufferbuff1is declared in line 8. - A
CharBufferbuff2is declared in line 10 that is the read-only copy ofbuff1. - The
CharBuffer.put()method is used in line 11 to try writing a value tobuff2.ReadOnlyBufferExceptionis thrown becausebuff2is read-only and cannot be modified.
Free Resources