Skip to main content

Java FileReader Class

Java is a powerful and versatile programming language, and one of its many strengths lies in its robust support for file input and output (IO) operations. Among the various classes that Java provides for file IO, the FileReader class is an important one. This class makes it possible to read the contents of a file as a stream of characters. In this article, we'll explore the FileReader class in detail.

What is the FileReader Class?

In Java, FileReader is a convenience class for reading character files. The constructors of this class assume that the default character encoding and the default byte-buffer size are acceptable. FileReader is a subclass of the InputStreamReader class and reads characters from a file in a file system.

How to Use the FileReader Class?

To use the FileReader class, you need to create an object of the class and associate the object with the file you want to read. Here is how to do it:

FileReader reader = new FileReader("file.txt");

In the above line of code, "file.txt" is the name of the file from which we want to read. This file should be in the same directory as your Java program. If it's in a different directory, you need to provide the full path to the file.

Reading from a File

To read from a file, you can use the read() method, which reads a single character at a time from the file.

int data = reader.read();
while(data != -1) {
System.out.print((char) data);
data = reader.read();
}

In the above code, we're reading one character at a time from the file and printing it to the console until we reach the end of the file, at which point the read() method will return -1.

Closing a File

After you've done reading from a file, you should always close the file by calling the close() method. It's a good practice to close files as soon as you're done with them to free up system resources.

reader.close();

Handling Exceptions

File operations can cause exceptions, like FileNotFoundException and IOException. So, it's a good practice to handle these exceptions using a try-catch block.

try {
FileReader reader = new FileReader("file.txt");
int data = reader.read();
while(data != -1) {
System.out.print((char) data);
data = reader.read();
}
reader.close();
} catch (IOException e) {
e.printStackTrace();
}

In this code, we've added a try-catch block that catches an IOException if any IO error occurs.

Conclusion

The FileReader class in Java makes it easy to read character data from a file. While it's not suitable for reading binary data, for text files it's a convenient option. Remember to always close the file after you're done with it, and to handle any exceptions that might occur during file operations. Happy coding!