ByteBuffer putChar() methods in Java with Examples - GeeksforGeeks

24 Jun, 2019
The putChar(char value) method of java.nio.ByteBuffer Class is used to write two bytes containing the given char value, in the current byte order, into this buffer at the current position, and then increments the position by two.
Syntax:
public abstract ByteBuffer putChar(char value)
Parameters: This method takes the char value to be written.
Return Value: This method returns this buffer.
Exception: This method throws the following exceptions:
BufferOverflowException- If this buffer’s current position is not smaller than its limit
ReadOnlyBufferException- If this buffer is read-only
Below are the examples to illustrate the putChar(char value) method:
Example 1:
// Java program to demonstrate// putChar() method  import java.nio.*;import java.util.*;  public class GFG {    public static void main(String[] args)    {          // Declaring the capacity of the ByteBuffer        int capacity = 6;          // Creating the ByteBuffer        try {              // creating object of ByteBuffer            // and allocating size capacity            ByteBuffer bb = ByteBuffer.allocate(capacity);              // putting the value in ByteBuffer            // using putChar() method            bb.putChar('a')                .putChar('b')                .putChar('c')                .rewind();              // print the ByteBuffer            System.out.print("Original ByteBuffer: [ ");            for (int i = 1; i <= capacity / 2; i++)                System.out.print(bb.getChar() + " ");            System.out.print("]");        }          catch (BufferOverflowException e) {              System.out.println("Exception throws : " + e);        }          catch (ReadOnlyBufferException e) {              System.out.println("Exception throws : " + e);        }    }}
Original ByteBuffer: [ a b c ]

Example 2: To demonstrate BufferOverflowException.
// Java program to demonstrate// putChar() method  import java.nio.*;import java.util.*;  public class GFG {    public static void main(String[] args)    {          // Declaring the capacity of the ByteBuffer        int capacity = 6;          // Creating the ByteBuffer        try {              // creating object of ByteBuffer            // and allocating size capacity            ByteBuffer bb = ByteBuffer.allocate(capacity);              // putting the value in ByteBuffer            // using putChar() method            bb.putChar('a')                .putChar('b')                .putChar('c')                .rewind();              // print the ByteBuffer            System.out.print("Original ByteBuffer: [ ");            for (int i = 1; i <= capacity / 2; i++)                System.out.print(bb.getChar() + " ");            System.out.print("]\n\n");              // putting the value in ByteBuffer            // using putChar() method            bb.putChar('d');        }          catch (BufferOverflowException e) {            System.out.println("buffer's current position"                               + " is not smaller than"                               + " its limit");            System.out.println("Exception throws : " + e);        }          catch (ReadOnlyBufferException e) {              System.out.println("Exception throws : " + e);        }    }}
Original ByteBuffer: [ a b c ]

buffer's current position is not smaller than its limit
Exception throws : java.nio.BufferOverflowException

Examples 3: To demonstrate ReadOnlyBufferException.
// Java program to demonstrate// putChar() method  import java.nio.*;import java.util.*;  public class GFG {    public static void main(String[] args)    {          // Declaring the capacity of the ByteBuffer        int capacity = 6;          // Creating the ByteBuffer        try {              // creating object of ByteBuffer            // and allocating size capacity            ByteBuffer bb = ByteBuffer.allocate(capacity);              // putting the value in ByteBuffer            // using putChar() method            bb.putChar('a')                .putChar('b')                .putChar('c')                .rewind();              // print the ByteBuffer            System.out.print("Original ByteBuffer: [ ");            for (int i = 1; i <= capacity / 2; i++)                System.out.print(bb.getChar() + " ");            System.out.print("]\n");              // Creating a read-only copy of ByteBuffer            // using asReadOnlyBuffer() method            ByteBuffer bb1 = bb.asReadOnlyBuffer();              System.out.println("\nTrying to put the char value"                               + " in read-only buffer");              // putting the value in readonly ByteBuffer            // using putChart() method            bb1.putChar('d');        }          catch (BufferOverflowException e) {            System.out.println("Exception throws : " + e);        }        catch (ReadOnlyBufferException e) {            System.out.println("Exception throws : " + e);        }    }}
Original ByteBuffer: [ a b c ]

Trying to put the char value in read-only buffer
Exception throws : java.nio.ReadOnlyBufferException

The putChar(int index, char value) method of java.nio.ByteBuffer Class is used to write two bytes containing the given char value, in the current byte order, into this buffer at the given index.
Syntax:
public abstract ByteBuffer putChar(int index, char value)
Parameters: This method takes the following arguments as a parameter:
index: The index at which the byte will be written
value: The char value to be written
Return Value: This method returns the this buffer.
Exception: This method throws the following exception:
IndexOutOfBoundsException- If index is negative or not smaller than the buffer’s limit
ReadOnlyBufferException- If this buffer is read-only
Below are the examples to illustrate the putChar(int index, char value) method:
Example 1:
// Java program to demonstrate// putChar() method  import java.nio.*;import java.util.*;  public class GFG {      public static void main(String[] args)    {          // Declaring the capacity of the ByteBuffer        int capacity = 6;          // Creating the ByteBuffer        try {              // creating object of ByteBuffer            // and allocating size capacity            ByteBuffer bb = ByteBuffer.allocate(capacity);              // putting the value in ByteBuffer            // using putChar() at  index 0            bb.putChar(0, 'a');              // putting the value in ByteBuffer            // using putChar() at  index 2            bb.putChar(2, 'b');              // putting the value in ByteBuffer            // using putChar() at  index 1            bb.putChar(4, 'c');              // rewinding the ByteBuffer            bb.rewind();              // print the ByteBuffer            System.out.print("Original ByteBuffer: [ ");            for (int i = 1; i <= capacity / 2; i++)                System.out.print(bb.getChar() + " ");            System.out.print("]\n");        }          catch (IndexOutOfBoundsException e) {              System.out.println("Exception throws : " + e);        }          catch (ReadOnlyBufferException e) {              System.out.println("Exception throws : " + e);        }    }}
Original ByteBuffer: [ a b c ]

Example 2: To demonstrate IndexOutOfBoundsException.
// Java program to demonstrate// putChar() method  import java.nio.*;import java.util.*;  public class GFG {      public static void main(String[] args)    {          // Declaring the capacity of the ByteBuffer        int capacity = 6;          // Creating the ByteBuffer        try {              // creating object of ByteBuffer            // and allocating size capacity            ByteBuffer bb = ByteBuffer.allocate(capacity);              // putting the value in ByteBuffer            // using putChar() at  index 0            bb.putChar(0, 'a');              // putting the value in ByteBuffer            // using putChar() at  index 2            bb.putChar(2, 'b');              // putting the value in ByteBuffer            // using putChar() at  index 1            bb.putChar(4, 'c');              // rewinding the ByteBuffer            bb.rewind();              // print the ByteBuffer            System.out.print("Original ByteBuffer: [ ");            for (int i = 1; i <= capacity / 2; i++)                System.out.print(bb.getChar() + " ");            System.out.print("]\n");              // putting the value in ByteBuffer            // using put() at  index -1            bb.putChar(-1, 'd');        }          catch (IndexOutOfBoundsException e) {            System.out.println("\nindex is negative or not smaller "                               + "than the buffer's limit");            System.out.println("Exception throws : " + e);        }          catch (ReadOnlyBufferException e) {              System.out.println("Exception throws : " + e);        }    }}
Original ByteBuffer: [ a b c ]

index is negative or not smaller than the buffer's limit
Exception throws : java.lang.IndexOutOfBoundsException

Example 3: To demonstrate ReadOnlyBufferException.
// Java program to demonstrate// putChar() method  import java.nio.*;import java.util.*;  public class GFG {      public static void main(String[] args)    {          // Declaring the capacity of the ByteBuffer        int capacity = 6;          // Creating the ByteBuffer        try {              // creating object of ByteBuffer            // and allocating size capacity            ByteBuffer bb = ByteBuffer.allocate(capacity);              // Creating a read-only copy of ByteBuffer            // using asReadOnlyBuffer() method            ByteBuffer bb1 = bb.asReadOnlyBuffer();              System.out.println("Trying to put the byte value"                               + " in read-only buffer");              // putting the value in readonly ByteBuffer            // using putChar() method            bb1.putChar(4, 'c');        }          catch (IndexOutOfBoundsException e) {              System.out.println("Exception throws : " + e);        }          catch (ReadOnlyBufferException e) {              System.out.println("Exception throws : " + e);        }    }}
Trying to put the byte value in read-only buffer
Exception throws : java.nio.ReadOnlyBufferException

Reference:
https://docs.oracle.com/javase/9/docs/api/java/nio/ByteBuffer.html#putChar-char-
https://docs.oracle.com/javase/9/docs/api/java/nio/ByteBuffer.html#putChar-int-char-
Java-ByteBuffer
Java-Functions
Java-NIO package
Java
Java
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Comments
Old Comments
Different ways of Reading a text file in Java
Constructors in Java
Stream In Java
Exceptions in Java
Generics in Java
Comparator Interface in Java with Examples
StringBuilder Class in Java with Examples
HashMap get() Method in Java
Functional Interfaces in Java
Strings in Java