# how to create a temporary directory in Java

By Atta Ur Rehman Shah (https://attacomsian.com/about). Published Dec 16, 2019. Topics: Java.
Canonical URL: https://attacomsian.com/blog/java-create-temporary-directory

> A short tutorial to learn how to create a temporary directory in Java.

In an earlier article, we looked at how to [create a temporary file](https://attacomsian.com/blog/java-create-temporary-file) in Java. In this article, you'll learn how to **create a temporary directory** in Java.

## Using `Files.createTempDirectory()` Method

In Java 7 and higher, you can use the `Files.createTempDirectory()` static method to create a temporary directory. This method creates a new directory in the default temporary-file directory, using the given prefix to generate its name.

Let us have an example:

```java
try {
    // create temporary folder
    Path path = Files.createTempDirectory("java-");

    // print path
    System.out.println(path.toAbsolutePath().toString());

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

The above code will create a temporary directory and [print its absolute path](https://attacomsian.com/blog/java-get-file-absolute-path) on the console. Here is how it looks like on a Linux machine:

```java
/tmp/java-5122075410590166027
```

To create a temporary folder in another location, you can pass an instance of `Path` as a first argument to `Files.createTempDirectory()`:

```java
try {
    // folder to create temporary directory
    Path folder = Paths.get("dir");

    // create temporary folder
    Path path = Files.createTempDirectory(folder, "java-");

    // print path
    System.out.println(path.toAbsolutePath().toString());

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

## Using `File.createTempFile()` Method

In Java 6 and below, you can use `File.createTempFile()` method from the legacy I/O API to create a temporary file in the default temporary-file directory as shown below:

```java
try {
    // create a file instance
    File file = File.createTempFile("java-", ""); // no suffix

    // create temporary folder
    file.mkdir();

    // print folder path
    System.out.println(file.getAbsolutePath());

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

Notice the `file.mkdir()` in the above example. We have to explicitly call this method to [create a directory in Java](https://attacomsian.com/blog/java-create-directory) from the `File` object.

## Further Reading

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

* [Reading and Writing Files in Java](https://attacomsian.com/blog/java-read-write-files)
* [How to Read and Write Text Files in Java](https://attacomsian.com/blog/java-read-write-text-files)
* [How to Read and Write Binary Files in Java](https://attacomsian.com/blog/java-read-write-binary-files)
* [Reading and Writing Files using Java NIO API](https://attacomsian.com/blog/java-read-write-files-nio-api)
* [How to read a file line by line in Java](https://attacomsian.com/blog/how-to-read-a-file-line-by-line-in-java)
