- Create a temporary file in java.
- We can create temporary file by specifying prefix, suffix (or directory)
- We will demonstrate following features.
- Create temporary file in temp directory (default location).
- Create temporary file in a directory specified by user.
- Create temporary file without specifying “suffix” (or file extension).
- We will get default file extension of tmp (e.g. blabla.tmp)
- Create temporary file by specifying the extension like “log”, “txt”, “mp4” etc.
- Java SDK provides couple of methods to create temporary (or temp) file.
1.) Creates a temporary file in specified directory (java/example)
- Create file by providing prefix, suffix and destination directory.
- In program, we will create a temporary file in current working directory.
public static File createTempFile(String prefix, String suffix, File directory) throws IOException
- Length of prefix should be more the 3.
- If suffix is null then it defaults to .tmp (file extension of file)
- If directory is null then directory path of temp file is dependent on property “java.io.tmpdir”
- Refer below code : System.getProperty(“java.io.tmpdir”)
- If directory is specified, temporary file will be created in specified directory.
2.) Creates a temporary file under temp directory
- Create temp file by providing the prefix (or file name) and suffix (or file extension).
- In program, the file will be created in temporary directory.
public static File createTempFile(String prefix, String suffix) throws IOException
- createTempFile internally calls createTempFile(String prefix, String suffix, null) only.
We have shown the temporary file creation process in Fig 1.
- User provide prefix, suffix and input directory path then temp file will be created in input directory.
- User provide prefix and suffix for temp file then file will be created in temp directory (default location).
3. Program: create temporary file in temp/input directory (java/example)
package org.learn;
import java.io.File;
import java.io.IOException;
public class TempFileExamples {
public static void main(String[] args) {
try {
String tempDirectoryPath = System.getProperty("java.io.tmpdir");
System.out.println("1. Default temp directory path: " + tempDirectoryPath);
// path of temp directory on windows directory
// output: C:\Users\sony\AppData\Local\Temp\
// Create temp file using prefix and suffix
File tempFile = File.createTempFile("myPrefix", null);
System.out.println("2. With prefix and no suffix :" + tempFile.getAbsolutePath());
// output:
// C:\Users\sony\AppData\Local\Temp\myPrefix77153538732490557.tmp
// Create temp file using prefix and suffix
tempFile = File.createTempFile("myPrefix", ".ext");
System.out.println("3. With prefix and suffix :" + tempFile.getAbsolutePath());
// output:
// C:\Users\sony\AppData\Local\Temp\myPrefix1955355708831001975.ext
// Create temp file using prefix, suffix and null directory
tempFile = File.createTempFile("myPrefix", ".ext", null);
System.out.println("4. With prefix, suffix and no directory:" + tempFile.getAbsolutePath());
// output:
// C:\Users\sony\AppData\Local\Temp\myPrefix1955355708831001975.ext
String currentDirectory = System.getProperty("user.dir");
// Create temp file using prefix, suffix and "D:/" directory
tempFile = File.createTempFile("myPrefix", ".ext", new File(currentDirectory));
System.out.println("5. Prefix, suffix and current directory: " + tempFile.getAbsolutePath());
// output: D:\Code\myPrefix3024444275963606033.ext
} catch (IOException ioException) {
ioException.printStackTrace();
}
}
}
4. Output:create temporary file in temp/input directory (java/example)
1. Default temp directory path: C:\Users\admin\AppData\Local\Temp\ 2. With prefix and no suffix :C:\Users\admin\AppData\Local\Temp\myPrefix6375174484136497040.tmp 3. With prefix and suffix :C:\Users\admin\AppData\Local\Temp\myPrefix7704027585818607103.ext 4. With prefix, suffix and no directory:C:\Users\admin\AppData\Local\Temp\myPrefix3528167598022753430.ext 5. Prefix, suffix and current directory: D:\Code\myPrefix3024444275963606033.ext