Java - FileReader read(char[] cbuf, int off, int len) method
Description
The Java FileReader read(char[] cbuf, int off, int len) method reads characters from a file into a character array. Efficient for large files since it avoids loading the entire content at once.
Declaration
Following is the declaration for java.io.FileReader.read(char[] cbuf, int off, int len) method −
public int read(char[] cbuf, int off, int len)
Parameters
cbuf− The character array where data will be stored.
off− The starting position in the array to store characters.
len− The number of characters to read.
Return Value
This method returns the actual number of characters read (-1 if end of file is reached).
Exception
IOException − If an I/O error occurs.
Example - Reading a Fixed Number of Characters
The following example shows the usage of Java FileReader read(char[] cbuf, int off, int len) method.
FileReaderDemo.java
package com.tutorialspoint;
import java.io.FileReader;
import java.io.IOException;
public class FileReaderDemo {
public static void main(String[] args) {
try (FileReader fr = new FileReader("example.txt")) {
char[] buffer = new char[10]; // Buffer of size 10
// Read 5 characters into buffer, starting at index 0
int charsRead = fr.read(buffer, 0, 5);
System.out.println("Characters read: " + new String(buffer, 0, charsRead));
} catch (IOException e) {
e.printStackTrace();
}
}
}
Output(if example.txt contains "Hello World")
Let us compile and run the above program, this will produce the following result−
Characters read: Hello
Explanation
Opens example.txt using FileReader.
Reads 5 characters into buffer from index 0.
Prints the characters read.
Example - Reading Characters with an Offset
The following example shows the usage of Java FileReader read(char[] cbuf, int off, int len) method.
FileReaderDemo.java
package com.tutorialspoint;
import java.io.FileReader;
import java.io.IOException;
public class FileReaderDemo {
public static void main(String[] args) {
try (FileReader fr = new FileReader("example.txt")) {
char[] buffer = new char[10]; // Buffer of size 10
// Read 5 characters and store them starting at index 2
int charsRead = fr.read(buffer, 0, 5);
System.out.println("Buffer content: " + new String(buffer));
} catch (IOException e) {
e.printStackTrace();
}
}
}
Output(if example.txt contains "JavaProgramming")
Let us compile and run the above program, this will produce the following result−
Buffer content: JavaP
Explanation
Reads 5 characters and stores them starting at index 0 in the buffer.
Example - Reading Large Files in Chunks
The following example shows the usage of Java FileReader read(char[] cbuf, int off, int len) method.
FileReaderDemo.java
package com.tutorialspoint;
import java.io.FileReader;
import java.io.IOException;
public class FileReaderDemo {
public static void main(String[] args) {
try (FileReader fr = new FileReader("largefile.txt")) {
char[] buffer = new char[20]; // Read in chunks
int charsRead;
while ((charsRead = fr.read(buffer, 0, buffer.length)) != -1) {
System.out.print(new String(buffer, 0, charsRead));
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
Output
Let us compile and run the above program, this will produce the following result−
<Contents of the file largefile.txt>
Explanation
Reads 20 characters at a time in a loop.
Keeps reading until read() returns -1 (end of file).
Prints content chunk by chunk.