JavaRead Files
Read a File
In the previous chapters, you learned how to create and write to a file.
In the following example, we use theScanner class toread the contents of the text file we created in the previous chapter:
Example
import java.io.File; // Import the File classimport java.io.FileNotFoundException; // Import this class to handle errorsimport java.util.Scanner; // Import the Scanner class to read text filespublic class ReadFile { public static void main(String[] args) { File myObj = new File("filename.txt"); // try-with-resources: Scanner will be closed automatically try (Scanner myReader = new Scanner(myObj)) { while (myReader.hasNextLine()) { String data = myReader.nextLine(); System.out.println(data); } } catch (FileNotFoundException e) { System.out.println("An error occurred."); e.printStackTrace(); } }}The output will be:
Files in Java might be tricky, but it is fun enough!Explanation: This program opens the file namedfilename.txt and reads it line by line using aScanner. Each line is printed to the console. If the file cannot be found, the program will print"An error occurred." instead.
Get File Information
To get more information about a file, use any of theFile methods:
Example
import java.io.File; // Import the File classpublic class GetFileInfo {
public static void main(String[] args) { File myObj = new File("filename.txt"); if (myObj.exists()) { System.out.println("File name: " + myObj.getName()); System.out.println("Absolute path: " + myObj.getAbsolutePath()); System.out.println("Writeable: " + myObj.canWrite()); System.out.println("Readable " + myObj.canRead()); System.out.println("File size in bytes " + myObj.length()); } else { System.out.println("The file does not exist."); } }}The output will be:
File name: filename.txt
Absolute path: C:\Users\MyName\filename.txt
Writeable: true
Readable: true
File size in bytes: 0Other Ways to Read Files
There are several classes you can use to read files in Java:
Scanner- best forsimple text and when you want to parse numbers or words easily.BufferedReader- best forlarge text files, because it is faster and reads line by line.FileInputStream- best forbinary data (images, audio, PDFs) or when you need full control of raw bytes.
You will learn more aboutFileInputStream andBufferedReader in later chapters.
Tip: To delete a file, read ourJava Delete Files chapter.
Tip: For a list of all Scanner methods, go to ourJava Scanner Reference.

