How to create a temporary directory/folder in java?

0 votes

Is there a standard and reliable way of creating a temporary directory inside a Java application? There's an entry in Java's issue database, which has a bit of code in the comments, but I wonder if there is a standard solution to be found in one of the usual libraries (Apache Commons etc.) ?

Aug 27, 2018 in Java by Neha
• 6,300 points

1 answer to this question.

0 votes

If you are using JDK 7 use the new Files.createTempDirectory class to create the temporary directory.

Before JDK 7 this should do it:

public static File createTempDirectory()
    throws IOException
    final File temp;

    temp = File.createTempFile("temp", Long.toString(System.nanoTime()));

        throw new IOException("Could not delete temp file: " + temp.getAbsolutePath());

        throw new IOException("Could not create temp directory: " + temp.getAbsolutePath());

    return (temp);

You could make better exceptions (subclass IOException) if you want.

Do not use deleteOnExit() even if you explicitly delete it later.

Google 'deleteonexit is evil' for more info, but the gist of the problem is:

  1. deleteOnExit() only deletes for normal JVM shutdowns, not crashes or killing the JVM process.

  2. deleteOnExit() only deletes on JVM shutdown - not good for long-running server processes because:

  3. The evilest of all - deleteOnExit() consumes memory for each temp file entry. If your process is running for months or creates a lot of temp files in a short time, you consume memory and never release it until the JVM shuts down.

answered Aug 28, 2018 by Frankie
• 9,810 points

Related Questions In Java

0 votes
2 answers

How to create a 2-D array in java?

int[][] multi = new int[5][]; multi[0] = new ...READ MORE

answered Jul 16, 2018 in Java by Daisy
• 8,110 points
0 votes
1 answer

How to create a memory leak in Java?

Hello @kartik, A simple thing to do is ...READ MORE

answered Jul 28 in Java by Niroj
• 57,100 points
+5 votes
3 answers

How to execute a python file with few arguments in java?

You can use Java Runtime.exec() to run python script, ...READ MORE

answered Mar 27, 2018 in Java by DragonLord999
• 8,450 points

edited Nov 6, 2018 by Omkar 29,574 views
0 votes
2 answers

How can I convert a String variable to a primitive int in Java

 Here are two ways illustrating this: Integer x ...READ MORE

answered Aug 20, 2019 in Java by Sirajul
• 57,760 points
0 votes
2 answers

How can I get the filenames of all files in a folder which may or may not contain duplicates

List<String> results = new ArrayList<String>(); File[] files = ...READ MORE

answered Sep 12, 2018 in Java by Sushmita
• 6,890 points
0 votes
2 answers

Store String inside a File using Java

We can use Apache Commons IO. It ...READ MORE

answered Jul 20, 2018 in Java by Sushmita
• 6,890 points
0 votes
2 answers

How to read a text file in Java?

You can use Scanner class to read ...READ MORE

answered Aug 9, 2018 in Java by Parth
• 4,630 points
0 votes
3 answers

How to convert File to Byte[] in Java?

import; import java.nio.file.Files; File file; // ...(file is initialised)... byte[] ...READ MORE

answered Aug 14, 2018 in Java by samarth295
• 2,200 points
+1 vote
1 answer

What is a simple way to repeat a string in java?

From Java 11 on, there's a method String::repeat that does ...READ MORE

answered Aug 28, 2018 in Java by Frankie
• 9,810 points
0 votes
1 answer

How to force garbage collection in Java?

Your best option is to call System.gc() which simply ...READ MORE

answered Nov 15, 2018 in Java by Frankie
• 9,810 points