How to open a File in Java

Filed Under: Java

Sometimes we have to open a file in java program. java.awt.Desktop can be used to open a file in java. Desktop implementation is platform dependent, so first, we should check if the operating system supports Desktop or not. This class looks for the associated application registered to the current platform to open a file.

Java Open File

java open file, how to open a file in java
Let’s have a look at the simple java open file program. If we try to open a file that doesn’t exist, it will throw java.lang.IllegalArgumentException.

Let’s see Desktop class example for java open file.

JavaOpenFile.java


package com.journaldev.files;

import java.awt.Desktop;
import java.io.File;
import java.io.IOException;

public class JavaOpenFile {

    public static void main(String[] args) throws IOException {
        //text file, should be opening in default text editor
        File file = new File("/Users/pankaj/source.txt");
        
        //first check if Desktop is supported by Platform or not
        if(!Desktop.isDesktopSupported()){
            System.out.println("Desktop is not supported");
            return;
        }
        
        Desktop desktop = Desktop.getDesktop();
        if(file.exists()) desktop.open(file);
        
        //let's try to open PDF file
        file = new File("/Users/pankaj/java.pdf");
        if(file.exists()) desktop.open(file);
    }

}

When you run the above program, the text file will be opened in the default text editor. Similarly, a PDF file will be opened in adobe acrobat reader.

If there are no application associated with given file type or the application is failed to launch, open method throws java.io.IOException.

That’s all for a simple program to open a file in java.

Comments

  1. nadim kazi says:

    Can anyone tell me How to open any file based on user search from D drive?
    can anyone code for it?

  2. kesav says:

    While opening Word document using above code template , my document saying

    This document contains links that may refer to other files do you want to update this document with data from the linked files ? set as true with java…..

    So how can handle that warning/alert popup using java ?
    I need that warning/alert popup and need to handle through programming .
    plz give me reply with solution as early as possible , thank you

  3. Mali says:

    Thank you very much your small piece of code make my life more flexible

  4. Ganesh says:

    This always ask to open file in read mode and locked by some one.

  5. manjay.kumar says:

    opening the files , this way –> pop up is coming with open file and ask to open in read only mode.because this is locked by some user.

  6. dio says:

    Always valid the dependencies before continue. Example, Desktop.isDesktopSupported() can fail, therefore
    instead of open file first unnecessarily, in advance you should valid all crucial conditions to your program.

  7. Ramu says:

    Thanks for the code.It is very helpful for me

  8. iffe says:

    appreciate it man .. thank you ..

  9. AYENI FEMI says:

    THANKS FOR THE STRAIGHT TO THE POINT AND STATE-OF-THE ART SOLUTIONS TO PROBLEM THUMB UP BRUV!!!!

  10. Ritesh says:

    It’s working fine. Thank you.

  11. Sidiki Traore says:

    I am trying to access a file shared in my network. It shows :

    java.net.URISyntaxException

    Can someone help me to solve this problem?

    1. Manolo says:

      Perhaps the URI contains blank spaces.

  12. Shalini J says:

    Thanks for the code above, it helped me in solving my problem in opening an excel from Java code.

  13. Amaranath says:

    I am developing web project in java.I have requirement to open a pdf file in jsp.That pdf is available in web directory.Please help me

  14. Kon says:

    Amazing tutorial and straight to the point.

  15. mike says:

    Awesome! Easy to read your code and straight to the point without all the extra fluff. Bookmarking your blog.

    Thanks for the help!

Leave a Reply

Your email address will not be published. Required fields are marked *

close
Generic selectors
Exact matches only
Search in title
Search in content
Search in posts
Search in pages