Java Read Files


Read a File

In the previous chapter, you learned how to create and write a file.

In the following example, we use a Scanner class to read the contents of a 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) {
                try {
                  File myObj = new File("filename.txt");
                  Scanner myReader = new Scanner(myObj);
                  while (myReader.hasNextLine()) {
                    String data = myReader.nextLine();
                    System.out.println(data);
                  }
                  myReader.close();
                } 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!


Get File Information

For more information about the 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

Note: There are many classes available in the Java API that can be used to read and write Java files: FileReader, BufferedReader, Files, Scanner, FileInputStream, FileWriter, BufferedWriter, FileOutputStream, etc. Which one you can use depends on the Java version of your colleagues and whether you need to read bytes or characters, file / line size etc.