Hurry! Try our new Interactive Courses for FREE. 🥳   🚀

Java FileReader Class

In this tutorial, we will learn FileReader class in Java. This class helps to read the data from the file as a stream, of characters. Java FileReader is a subclass of the Java Reader class, so it has many of the same methods.

Syntax

This is the syntax declaration of FileReader class. This class extends the InputStreamReader class.

public class FileReader extends InputStreamReader  

Constructors of FileReader Class

Constructor Description
FileReader(String file) It gets the filename in a string. It opens the given file in read mode. If the file doesn't exist, it throws FileNotFoundException.
FileReader(File file) It gets filename in file instance. It opens the given file in read mode. If the file doesn't exist, it throws FileNotFoundException.

Methods of FileReader Class

Method Description
int read() This method is used to return a character in ASCII form. It returns -1 at the end of the file.
void close() This method is used to close the FileReader class.

Example of read() method in FileReader Class

In the following example, we are reading the data from the file. Firstly we created a FileReader after that using the read() method we are reading each character and print it on the console.

package studytonight;
import java.io.FileReader;
public class StudyTonight 
{
	public static void main(String args[])
	{
		try
		{   		
			FileReader fileReader=new FileReader("E:\\studytonight\\output.txt");    
			int i;    
			while((i=fileReader.read())!=-1)    
				System.out.print((char)i);    
			fileReader.close();    
		}
		catch(Exception e)
		{
			System.out.println("Error: "+e.toString());
		}
	}
}


Welcome to Studytonight

output.txt

Welcome to Studytonight

Example of getEncoding() in FileReader

In the following example, we are implementing getEncoding() method that can be used to get the type of encoding that is used to store data in the file. We can see in the output of this example we are getting UTF8 as a character encoding of this fileReader2. If we do not specify in that case it will display default encoding.

package studytonight;
import java.io.FileReader;
import java.nio.charset.Charset;
public class StudyTonight 
{
	public static void main(String args[])
	{
		try
		{   		
			FileReader fileReader1 = new FileReader("E:\\studytonight\\output.txt");
			FileReader fileReader2 = new FileReader("E:\\studytonight\\output.txt", Charset.forName("UTF8"));
			System.out.println("Character encoding of fileReader1: " + fileReader1.getEncoding());
			System.out.println("Character encoding of fileReader2: " + fileReader2.getEncoding());
			fileReader1.close();
			fileReader2.close();
		}
		catch(Exception e)
		{
			System.out.println("Error: "+e.toString());
		}
	}
}


Character encoding of fileReader1: Cp1252
Character encoding of fileReader2: UTF8

Conclusion:

In this tutorial, we learned about FileReader class. This class makes it possible to read the contents of a file as a stream of characters. getEncoding() method of this class is used to check the encoding of files.