In an earlier article, we looked at how to create a new file in Java. In this quick article, you will learn how to create a directory in Java.

Using Java NIO API

In Java 7 and higher, you can use Java NIO API Files.createDirectory() static method to create a new directory:

try {
    // directory path
    Path path = Paths.get("./java");

    // create directory
    Files.createDirectory(path);

}catch (IOException ex) {
    ex.printStackTrace();
}

The above code will create a new directory named java in the class path. If it already exists, a FileAlreadyExistsException exception is thrown.

To avoid the exception, you can use the Files.createDirectories() method instead. It doesn't throw an exception if the directory already exists. Here is an example:

try {
    // directory path
    Path path = Paths.get("./java");

    // create directory
    Files.createDirectories(path);

}catch (IOException ex) {
    ex.printStackTrace();
}

You can even use Files.createDirectories() to create multiple nested directories at once. This method creates all nonexistent parent directories first. Here is an example:

try {
    // directory path
    Path path = Paths.get("./java/jvm/1.8");

    // create directory
    Files.createDirectories(path);

}catch (IOException ex) {
    ex.printStackTrace();
}

Using Java I/O Package

You can also use the classic Java I/O package (classes in java.io.*) to create a new directory. The following example shows how you can use the File.mkdir() method to create a single directory:

// directory path
File file = new File("./java");

// create directory
if (file.mkdir()) {
    System.out.println("Directory is created.");
} else {
    System.out.println("Directory already exists.");
}

To create a hierarchy of directory structure, you can use the File.mkdirs() method:

// directories path
File file = new File("./java/jvm/1.8");

// create directories
if (file.mkdirs()) {
    System.out.println("Directories are created.");
} else {
    System.out.println("Directories already exist.");
}

Further Reading

You may be interested in other Java I/O articles:

✌️ Like this article? Follow @attacomsian on Twitter. You can also follow me on LinkedIn and DEV. Buy me a coffee (cost $3)

Need help to start a new Spring Boot or MEAN stack project? I am available for contract work. Hire me to accomplish your business goals with engineering and design. Let’s talk about your project: hi@attacomsian.com.