Java Read Files
Read a File
In the previous chapters, you learned how to create and write to a file.
In the 
following example, we use the Scanner class to 
read the contents of the text file we created in the previous chapter:
Example
import java.io.File;                  // Import the File class
import java.io.FileNotFoundException; // Import this class to handle errors
import java.util.Scanner;             // Import the Scanner class to read text files
public 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 named filename.txt 
and reads it line by line using a Scanner.  
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 the File methods:
Example
import java.io.File;  // Import the File class
public 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: 0
Other Ways to Read Files
There are several classes you can use to read files in Java:
Scanner- best for simple text and when you want to parse numbers or words easily.BufferedReader- best for large text files, because it is faster and reads line by line.FileInputStream- best for binary data (images, audio, PDFs) or when you need full control of raw bytes.
You will learn more about 
  FileInputStream and BufferedReader 
   in later chapters.
Tip: To delete a file, read our Java Delete Files chapter.
Tip: For a list of all Scanner methods, go to our Java Scanner Reference.