java.io.InputStreamReader read(char[] cbuf, int offset, int length)

Description

On this document we will be showing a java example on how to use the read(char[] cbuf, int offset, int length) method of InputStreamReader Class. This method Reads characters into a portion of an array.

Specified by:

read in class Reader

Throws:

  • IOException – If an I/O error occurs

Method Syntax

public int read(char[] cbuf, int offset, int length)
throws IOException

Method Argument

Data Type Parameter Description
char[] cbuf Destination buffer
int offset Offset at which to start storing characters
int length Maximum number of characters to read

Method Returns

This method returns an int which denotes the number of characters read, or -1 if the end of the stream has been reached.

Compatibility

Requires Java 1.2 and up

Java InputStreamReader read(char[] cbuf, int offset, int length) Example

Below is a java code demonstrates the use of read(char[] cbuf, int offset, int length) method of InputStreamReader class. The example presented might be simple however it shows the behaviour of the read(char[] cbuf, int offset, int length) method of InputStreamReader class.

package com.javatutorialhq.java.examples;


import java.io.IOException;
import java.io.InputStreamReader;

/*
 * This example source code demonstrates the use of  
 * read(char[] cbuf, int offset, int length) method 
 * of InputStreamReader class
 */

public class InputStreamReaderReadCbufOffsetExample {
	// make sure to mark this as static
	static InputStreamReader is=null;

	public static void main(String[] args) {		
		// ask for user first name as console input
		System.out.print("Enter FirstName:");	
		
		// get the console input as String variable
		String firstName=getValue();
		
		// ask for user last name as console input
		System.out.print("Enter LastName:");
		
		// get the console input as String variable
		String lastName=getValue();
		
		// display a welcome message
		System.out.println("Welcome "+firstName+" "+lastName);
		try {
			// closing the inputStreamReader
			is.close();
		} catch (IOException e) {
			e.printStackTrace();
		}

	}
	public static String getValue(){
		// initialize a InputStreamReader
		is = new InputStreamReader(System.in);
		
		// initialize placeholder variable
		char[] buffer=new char[100];
		
		// initialize return string value
		String value="";
		try {
			// read console input
			// the reader starts getting character at index 0
			// and the length of which is defined by the index size
			// of the buffer
			is.read(buffer, 0, buffer.length); // be careful for exception
			
			// since the buffer contains blank spaces
			// we have to filter it out
			for(char cbuf:buffer){
				// filter for blank space
				if((int)cbuf!=0 && (int)cbuf!=10 && (int)cbuf!=13){					
					value=value+cbuf;
				}
				
			}
		} catch (IOException e) {

			e.printStackTrace();
		}
		return value;
	}

}

Sample Output

Below is the sample output when you run the above example.

java lang InputStreamReader read(char[] cbuf, int offset, int length) example output