
- Java.io - Home
- Java.io - BufferedInputStream
- Java.io - BufferedOutputStream
- Java.io - BufferedReader
- Java.io - BufferedWriter
- Java.io - ByteArrayInputStream
- Java.io - ByteArrayOutputStream
- Java.io - CharArrayReader
- Java.io - CharArrayWriter
- Java.io - Console
- Java.io - DataInputStream
- Java.io - DataOutputStream
- Java.io - File
- Java.io - FileDescriptor
- Java.io - FileInputStream
- Java.io - FileOutputStream
- Java.io - FilePermission
- Java.io - FileReader
- Java.io - FileWriter
- Java.io - FilterInputStream
- Java.io - FilterOutputStream
- Java.io - FilterReader
- Java.io - FilterWriter
- Java.io - InputStream
- Java.io - InputStreamReader
- Java.io - LineNumberInputStream
- Java.io - LineNumberReader
- Java.io - ObjectInputStream
- Java.io - ObjectInputStream.GetField
- Java.io - ObjectOutputStream
- io - ObjectOutputStream.PutField
- Java.io - ObjectStreamClass
- Java.io - ObjectStreamField
- Java.io - OutputStream
- Java.io - OutputStreamWriter
- Java.io - PipedInputStream
- Java.io - PipedOutputStream
- Java.io - PipedReader
- Java.io - PipedWriter
- Java.io - PrintStream
- Java.io - PrintWriter
- Java.io - PushbackInputStream
- Java.io - PushbackReader
- Java.io - RandomAccessFile
- Java.io - Reader
- Java.io - SequenceInputStream
- Java.io - SerializablePermission
- Java.io - StreamTokenizer
- Java.io - StringBufferInputStream
- Java.io - StringReader
- Java.io - StringWriter
- Java.io - Writer
- Java.io package Useful Resources
- Java.io - Discussion
Java - Reader read(char[] cbuf,int off,int len) method
Description
The Java Reader read(char[] cbuf,int off,int len) method reads characters into a portion of an array. This method will block until some input is available, an I/O error occurs, or the end of the stream is reached.
Declaration
Following is the declaration for java.io.Reader.read(char[] cbuf,int off,int len) method.
public abstract int read(char[] cbuf,int off,int len)
Parameters
cbuf − Destination buffer.
off − Offset at which to start storing characters.
len − Maximum number of characters to read.
Return Value
This method returns the number of characters read, or -1 if the end of the stream has been reached.
Exception
IOException − if some I/O error occurs.
Example - Usage of Reader read(char[] cbuf,int off,int len) method
The following example shows the usage of Reader read(char[] cbuf,int off,int len) method.
ReaderDemo.java
package com.tutorialspoint; import java.io.IOException; import java.io.Reader; import java.io.StringReader; public class ReaderDemo { public static void main(String[] args) { String s = "Hello world"; // create a StringReader Reader reader = new StringReader(s); // create a char array to read chars into char cbuf[] = new char[5]; try { // read characters into a portion of an array. System.out.println( reader.read(cbuf, 0, 5)); // print cbuf System.out.println(cbuf); // close the stream reader.close(); } catch (IOException ex) { ex.printStackTrace(); } } }
Output
Let us compile and run the above program, this will produce the following result −
5 Hello
Example - Reading into a portion of a character array
The following example shows the usage of Reader read(char[] cbuf,int off,int len) method.
ReaderDemo.java
package com.tutorialspoint; import java.io.StringReader; import java.io.IOException; public class ReaderDemo { public static void main(String[] args) { String data = "ABCDEFG"; try (StringReader reader = new StringReader(data)) { char[] buffer = new char[10]; // Fill initial buffer to show unused areas later for (int i = 0; i < buffer.length; i++) { buffer[i] = '-'; } int charsRead = reader.read(buffer, 2, 5); // Start at index 2, read 5 characters System.out.println("Characters read: " + charsRead); System.out.println("Buffer content: " + new String(buffer)); } catch (IOException e) { e.printStackTrace(); } } }
Output
Let us compile and run the above program, this will produce the following result−
Characters read: 5 Buffer content: --ABCDE---
Explanation
We read 5 characters starting at index 2 in the buffer.
Unused positions (like index 0 and 1) remain as '-' to visualize where data was placed.
Example - Multiple reads with different offsets
The following example shows the usage of Reader read(char[] cbuf,int off,int len) method.
ReaderDemo.java
package com.tutorialspoint; import java.io.StringReader; import java.io.IOException; public class ReaderDemo { public static void main(String[] args) { String data = "123456789"; try (StringReader reader = new StringReader(data)) { char[] buffer = new char[10]; int read1 = reader.read(buffer, 0, 4); // Fill from index 0 int read2 = reader.read(buffer, 5, 3); // Fill from index 5 System.out.println("First read (" + read1 + " chars): " + new String(buffer, 0, read1)); System.out.println("Second read (" + read2 + " chars): " + new String(buffer, 5, read2)); System.out.println("Full buffer: " + new String(buffer)); } catch (IOException e) { e.printStackTrace(); } } }
Output
Let us compile and run the above program, this will produce the following result−
First read (4 chars): 1234 Second read (3 chars): 567 Full buffer: 1234567
Explanation
First, we read 4 characters into the beginning of the buffer.
Then, we read the next 3 characters into a different part of the buffer (index 5).