StringReader read(char[], int, int) in Java

read(char[], int, int): This method is available in the java.io.StringReader class of Java.

Syntax:

int java.io.StringReader.read(char[] cbuf, int off, int len) throws IOException

This method takes three arguments. This method reads characters into a portion of an array.

Parameters: Three parameters are required for this method.

cbuf: Destination buffer.

off: Offset at which to start writing characters.

len: Maximum number of characters to read.

Returns: The number of characters reads, or -1 if the end of the stream has been reached.

Throws:

1. IOException - If an I/O error occurs.

2. IndexOutOfBoundsException - If off is negative, or len is negative, or len is greater than cbuf.length - off.

3. NullPointerException - If cbuf is null.

Approach 1: When no exception

Java

import java.io.IOException;
import java.io.StringReader;

public class StringReaderread2 {
    public static void main(String[] args) {

        String s = "HELLO JAVA";
        StringReader stringReader = new StringReader(s);

        char cbuf[] = { 'a', 'b', 'c', 'd', 'e', 'f' };

        int off = 0, len = 4;
        try {
            System.out.println(stringReader.read(cbuf, off, len));
        } catch (IOException e) {
            System.out.println("IOException occurs");

        } catch (IndexOutOfBoundsException e) {
            System.out.println("IndexOutOfBoundsException occurs");

        } catch (NullPointerException e) {
            System.out.println("NullPointerException occurs");

        }
    }
}

Output:

4


Approach 2: IOException

Java

import java.io.IOException;
import java.io.StringReader;

public class StringReaderread2 {
    public static void main(String[] args) {

        String s = "HELLO JAVA";
        StringReader stringReader = new StringReader(s);

        char cbuf[] = { 'a', 'b', 'c', 'd', 'e', 'f' };

        stringReader.close();
        int off = 0, len = 4;
        try {
            System.out.println(stringReader.read(cbuf, off, len));
        } catch (IOException e) {
            System.out.println("IOException occurs");

        } catch (IndexOutOfBoundsException e) {
            System.out.println("IndexOutOfBoundsException occurs");

        } catch (NullPointerException e) {
            System.out.println("NullPointerException occurs");

        }
    }
}

Output:

IOException occurs


Approach 3: IndexOutOfBoundsException 

Java

import java.io.IOException;
import java.io.StringReader;

public class StringReaderread2 {
    public static void main(String[] args) {

        String s = "HELLO JAVA";
        StringReader stringReader = new StringReader(s);

        char cbuf[] = { 'a', 'b', 'c', 'd', 'e', 'f' };

        int off = 0, len = 14;
        try {
            System.out.println(stringReader.read(cbuf, off, len));
        } catch (IOException e) {
            System.out.println("IOException occurs");

        } catch (IndexOutOfBoundsException e) {
            System.out.println("IndexOutOfBoundsException occurs");

        } catch (NullPointerException e) {
            System.out.println("NullPointerException occurs");

        }
    }
}

Output:

IndexOutOfBoundsException occurs


Approach 4: NullPointerException 

Java

import java.io.IOException;
import java.io.StringReader;

public class StringReaderread2 {
    public static void main(String[] args) {

        String s = "HELLO JAVA";
        StringReader stringReader = new StringReader(s);

        char cbuf[] = null;

        int off = 0, len = 4;
        try {
            System.out.println(stringReader.read(cbuf, off, len));
        } catch (IOException e) {
            System.out.println("IOException occurs");

        } catch (IndexOutOfBoundsException e) {
            System.out.println("IndexOutOfBoundsException occurs");

        } catch (NullPointerException e) {
            System.out.println("NullPointerException occurs");

        }
    }
}

Output:

NullPointerException occurs


Some other methods of StringReader

close()This method closes the stream and releases any system resources associated with it.

mark(int)This method marks the present position in the stream. Subsequent calls to reset() will reposition the stream to this point.

markSupported()This method tells whether this stream supports the mark() operation, which it does.

read()This method reads a single character.

read(char[], int, int)This method reads characters into a portion of an array.

ready()This method tells whether this stream is ready to be read.

reset()This method resets the stream to the most recent mark, or to the beginning of the string if it has never been marked.

skip(long)This method skips the specified number of characters in the stream.

StringReader(String)This method creates a new string reader.

No comments:

Post a Comment