CharArrayReader read(CharBuffer) method in Java with Examples

The read(CharBuffer) method of CharArrayReader Class in Java is used to read the specified characters into a CharBuffer instance. This method blocks the stream till:
- It has taken some input from the stream.
- Some IOException has occurred
- It has reached the end of the stream while reading.
Syntax:
public int read(CharBuffer charBuffer)
Parameters: This method accepts a mandatory parameter charBuffer which is the CharBuffer instance to be written in the Stream.
Return Value: This method returns an integer value which is the number of characters read from the stream. It returns -1 if no character has been read.
Exception: This method throws following exceptions:
- IOException: if some error occurs while input output.
- NullPointerException: if the CharBuffer instance to be filled is null
- ReadOnlyBufferException: if the CharBuffer instance to be filled is a read only buffer
Below methods illustrates the working of read(CharBuffer) method:
Program 1:
// Java program to demonstrate// CharArrayReader read(CharBuffer) method  import java.io.*;import java.util.*;import java.nio.CharBuffer;  class GFG {    public static void main(String[] args)    {          try {              char[] str = { 'G', 'e', 'e', 'k', 's',                           'F', 'o', 'r',                           'G', 'e', 'e', 'k', 's' };              // Create a CharArrayReader instance            CharArrayReader reader                = new CharArrayReader(str);              // Get the CharBuffer instance            // to be read from the stream            CharBuffer charBuffer                = CharBuffer.allocate(5);              // Read the charBuffer            // to this reader using read() method            // This will put the str in the stream            // till it is read by the reader            reader.read(charBuffer);              // Print the read charBuffer            System.out.println(charBuffer                                   .flip()                                   .toString());              reader.close();        }        catch (Exception e) {            System.out.println(e);        }    }} |
Output:
Geeks
Program 2:
// Java program to demonstrate// CharArrayReader read(CharBuffer) method  import java.io.*;import java.util.*;import java.nio.CharBuffer;  class GFG {    public static void main(String[] args)    {          try {              char[] str = { 'G', 'e', 'e', 'k', 's',                           'F', 'o', 'r',                           'G', 'e', 'e', 'k', 's' };              // Create a CharArrayReader instance            CharArrayReader reader                = new CharArrayReader(str);              // Get the CharBuffer instance            // to be read from the stream            CharBuffer charBuffer                = CharBuffer                      .allocate(13);              // Read the charBuffer            // to this reader using read() method            // This will put the str in the stream            // till it is read by the reader            reader.read(charBuffer);              // Print the read charBuffer            System.out.println(charBuffer                                   .flip()                                   .toString());              reader.close();        }        catch (Exception e) {            System.out.println(e);        }    }} |
Output:
GeeksForGeeks
Reference: https://docs.oracle.com/javase/9/docs/api/java/io/Reader.html#read-java.nio.CharBuffer-



