Creating Temporary (temp) files using Java

Table of Contents

  1. Using File.createTempFile()
  2. Using Files.createTempFile()
  3. Using Guava's Files.createTempDir()
  4. Using Apache Commons IO
  5. Custom Implementation

1. Using File.createTempFile()


    import java.io.File;
    import java.io.IOException;

    try {
        File tempFile = File.createTempFile("prefix-", "-suffix");
        System.out.println("Temp file created: " + tempFile.getAbsolutePath());
        tempFile.deleteOnExit();
    } catch (IOException e) {
        e.printStackTrace();
    }
    

2. Using Files.createTempFile()


    import java.nio.file.Files;
    import java.nio.file.Path;
    import java.io.IOException;

    try {
        Path tempFile = Files.createTempFile("prefix-", "-suffix");
        System.out.println("Temp file created: " + tempFile.toString());
        Files.deleteIfExists(tempFile);
    } catch (IOException e) {
        e.printStackTrace();
    }
    

3. Using Guava's Files.createTempDir()


    import com.google.common.io.Files;
    import java.io.File;

    File tempDir = Files.createTempDir();
    System.out.println("Temp directory created: " + tempDir.getAbsolutePath());
    tempDir.deleteOnExit();
    

4. Using Apache Commons IO


    import org.apache.commons.io.FileUtils;
    import java.io.File;
    import java.io.IOException;

    try {
        File tempDir = FileUtils.getTempDirectory();
        File tempFile = File.createTempFile("prefix-", "-suffix", tempDir);
        System.out.println("Temp file created: " + tempFile.getAbsolutePath());
        FileUtils.forceDelete(tempFile);
    } catch (IOException e) {
        e.printStackTrace();
    }
    

5. Custom Implementation


    import java.io.File;
    import java.io.IOException;

    public class TempFileCreator {
        public static File createTempFile(String prefix, String suffix) throws IOException {
            String tempDir = System.getProperty("java.io.tmpdir");
            String fileName = prefix + System.nanoTime() + suffix;
            File tempFile = new File(tempDir, fileName);
            
            if (!tempFile.createNewFile()) {
                throw new IOException("Failed to create temp file");
            }
            
            tempFile.deleteOnExit();
            return tempFile;
        }
    }

    // Usage
    File tempFile = TempFileCreator.createTempFile("myapp-", ".tmp");
    System.out.println("Custom temp file created: " + tempFile.getAbsolutePath());
    

Comments & Discussion

Facing issues? Have questions? Post them here! We're happy to help!