Java File createNewFile()

In this guide, you will learn about the File createNewFile() method in Java programming and how to use it with an example.

1. File createNewFile() Method Overview


The createNewFile() method is used to create a new, empty file in the specified directory if the file with the same name does not already exist.


public boolean createNewFile() throws IOException



Key Points:

- The method returns true if the named file did not exist and was successfully created; and false if the file already exists.

- It will throw an IOException if an I/O error occurs, or if the parent directory does not exist.

- The check for the existence of the file and the creation of the new file, if it does not exist, are a single operation that is atomic with respect to other filesystem activities.

- The method doesn't give any control over file attributes. If you need more control, consider using the Files.createFile(Path, FileAttribute<?>...) method.

- You need to handle the potential IOException either with a try-catch block or by declaring it with the throws keyword.

2. File createNewFile() Method Example


public class CreateFileExample {
    public static void main(String[] args) {
        // Specify the path of the file to be created
        File file = new File("sample.txt");

        // Try to create the file
        try {
            if (file.createNewFile()) {
                System.out.println("File created successfully!");
            } else {
                System.out.println("File already exists.");
        } catch (IOException e) {


(File does not exist previously)
File created successfully!

(File already exists)
File already exists.


In the given example, we attempt to create a file named "sample.txt" in the current directory. If the file doesn't exist, it's created, and "File created successfully!" is printed. If it already exists, "File already exists." is displayed. 

Possible IOExceptions, like issues with permissions or non-existent parent directories, are caught and printed to give more context about the error.