In this tutorial, we will learn about Java Reader, its subclasses, and its strategies with the help of an example.
The Reader class of the java.io package is an abstract superclass that represents a stream of characters.
Since Reader is an abstract class, it isn’t useful without anyone else. In any case, its subclasses can be used to understand data.
In this article, you will learn-
Subclasses of Reader
In order to use the functionality of Reader, we can use its subclasses. Some of them are:
We will learn about all these subclasses in the next tutorial.
Make a Reader
To make a Reader, we should import the java.io.Reader package first. When we import the package, here is the means by which we can make the reader.
// Creates a Reader
Reader input = new FileReader();
Here, we have made a reader using the FileReader class. It is on the grounds that Reader is an abstract class. Subsequently we can’t make an object of Reader.
Note: We can likewise make readers from different subclasses of Reader.
Strategies for Reader
The Reader class gives various techniques that are executed by its subclasses. Here is a portion of the generally used techniques:
- ready() – checks if the reader is ready to be read
- read(char[] array) – reads the characters from the stream and stores in the specified array
- read(char[] array, int start, int length) – reads the number of characters equal to length from the stream and stores in the specified array starting from the start
- mark() – marks the position in the stream up to which data has been read
- reset() – returns the control to the point in the stream where the mark is set
- skip() – discards the specified number of characters from the stream
Example: Reader Using FileReader
Here is how we can implement Reader using the FileReader class.
Suppose we have a file named input.txt with the following content.
This is a line of text inside the file.
Let’s try to read this file using FileReader (a subclass of Reader).
import java.io.Reader;
import java.io.FileReader;
class Main {
public static void main(String[] args) {
// Creates an array of character
char[] array = new char[100];
try {
// Creates a reader using the FileReader
Reader input = new FileReader("input.txt");
// Checks if reader is ready
System.out.println("Is there data in the stream? " + input.ready());
// Reads characters
input.read(array);
System.out.println("Data in the stream:");
System.out.println(array);
// Closes the reader
input.close();
}
catch(Exception e) {
e.getStackTrace();
}
}
}
Output
Is there data in the stream? true
Data in the stream:
This is a line of text inside the file.
In the above example, we have made a reader using the FileReader class. The reader is connected with the record input.txt.
Reader input = new FileReader("input.txt");
To read data from the input.txt file, we have implemented these methods.
input.read(); // to read data from the reader
input.close(); // to close the reader
To learn more, visit Java Reader (official Java documentation).
Thanks for reading! We hope you found this tutorial helpful and we would love to hear your feedback in the Comments section below. And show us what you’ve learned by sharing your photos and creative projects with us.