Java

How to Open a File in Java

Java is an object-oriented language that offers various predefined packages, classes, and methods for performing different tasks. While writing a Java program, you may need to open a file and perform some related operations. Don’t know how to do that? Using the built-in Java classes, you can open files without any hassle.

This guide will teach the method of opening a file in Java. So, let’s start!

Java Classes Used for Opening a File

In Java, you can utilize any of the given classes in your program for opening a file:

  • Java Scanner class
  • Java Desktop class
  • Java BufferedReader class
  • Java FileReader class
  • Java FileInputStream class
  • Java nio Package

Here, we will discuss the top three most utilized Java classes for opening a file.

Method 1: Opening a File Using the Java Scanner Class

The java.util package contains the Scanner class. The constructor of the Java Scanner class enables you to open and read the file’s content by taking a file as an argument. The Scanner class also provides various methods for reading data from a file, such as the nextLine() method.

Example
In this example, we will use the Java Scanner class to open and read the content of the java11.txt file. To do so, import the java.util.Scanner class and follow the given instructions:

  • Firstly, in the try block, we will create a variable named myfile that will be used to refer to the required file using the given path.
  • Then, we will create a Scanner class object named openfile and pass myfile to it as an argument.
  • Within the while loop, the object openfile will call the method hasNextLine() to read the file by using the nextLine()
  • Close the scanner object openfile by using the close()
try {
    File myfile = new File("E:\\Java\\java11.txt");
    Scanner openfile = new Scanner(myfile);
    while (openfile.hasNextLine()) {
       String filedata = openfile.nextLine();
       System.out.println(filedata);
    }
    openfile.close();
   }

If the particular file does not exist, catch block will throw FileNotFoundException:

catch (FileNotFoundException e) {
       System.out.println("Error.");
    e.printStackTrace();
}

The given output indicates that we have successfully read the content of our java11.txt file:

Now, let’s head toward the other method for opening a file in a Java program.

Method 2: Opening a File Using FileInputStream Class

FileInputStream is another Java class that can be utilized for opening and reading a file in Java. Similar to the Scanner class constructor, the constructor of the FileInputStream class also accepts the file as an argument. However, it reads the file in the form of bytes.

Example
The below example will show the method to open a file using FileInputStream class. Here is the list of steps that we have followed:

  • Firstly, import the io.FileInputStream package into your project.
  • In the try block, we will create a variable named myfile that accepts the file’s location as an argument.
  • Then, create an object of the FileInputStream class named openfile and pass the created file variable to it.
  • In the added while loop, the object openfile will read the required file in byte form.
try {  
    File myfile=new File("E:\\Java\\java11.txt");  
    FileInputStream openfile=new FileInputStream(myfile);
    System.out.println("File content: ");  
    int i=0;  
    while((i =openfile.read())!=-1)  
    {  
        System.out.print((char)i);      
    }  
}

The catch block will throw an Exception if the file does not exist:

catch(Exception e)  {  
       e.printStackTrace();  
}

Output

Method 3: Opening a File Using the Java BufferedReader Class

The BufferedReader class belongs to the java.io package. Its constructor can be utilized for opening and reading the text with the help of a character input stream.

Example
Have a look at the below-given example to open a file in a Java program with the help of Buffered Reader class:

  • Firstly, import theio package for the BufferedReader class in your project.
  • Add a try block and create a variable named myfile that accepts the file path as an argument.
  • Then, create an object of the BufferedReader class named openfile and pass a file to it.
  • The openfile object will read the file by using buffering-character input stream.
try {
       File myfile = new File("E:\\Java\\java11.txt");
       BufferedReader openfile = new BufferedReader(new FileReader(myfile));
    System.out.println("The content of file: ");
    int i = 0;
    while ((i = openfile.read()) != -1) {
        System.out.print((char) i);
    }
}

Lastly, add a catch block that throws an Exception if the file does not exist:

catch(Exception e) {
      e.printStackTrace();
}

Output

We have given all the important information related to opening a file in Java.

Conclusion

To open and read a file in Java, we have predefined packages, methods, and classes, including the Scanner class, FileInputStream Class, and BufferedReader class. The Scanner class offers different methods to read data while the FileInputStream Class reads data in the form of bytes and the BufferedReader Class reads in the form of buffering-character input streams. This guide discussed the procedure related to opening a file in Java.

About the author

Farah Batool

I completed my master's degree in computer science. I am an academic researcher and love to learn and write about new technologies. I am passionate about writing and sharing my experience with the world.