Use File.createTempFile().
File tempFile = File.createTempFile("prefix-", "-suffix");
//File tempFile = File.createTempFile("MyAppName-", ".tmp");
tempFile.deleteOnExit();
Will create a file in the temp dir, like:
Answer from Stefan on Stack Overflowprefix-6340763779352094442-suffix
Use File.createTempFile().
File tempFile = File.createTempFile("prefix-", "-suffix");
//File tempFile = File.createTempFile("MyAppName-", ".tmp");
tempFile.deleteOnExit();
Will create a file in the temp dir, like:
prefix-6340763779352094442-suffix
NIO.2
Since Java 7 there is the new file API "NIO2" which contains new methods for creating temp files and directories.
| Modern | Use default temp folder | Specify folder |
|---|---|---|
| Create folder | Files.createTempDirectory |
Files.createTempDirectory |
| Create file | Files.createTempFile |
Files.createTempFile |
e.g.
Path tempDir = Files.createTempDirectory("tempfiles");
or
Path tempFile = Files.createTempFile("file", ".tmp");
For more info:
- Oracle’s online tutorial, free-of-cost: File I/O (Featuring NIO.2)
- Oracle technical notes: NIO and NIO.2 Examples
- What Is the Difference Between NIO and NIO.2? at Baeldung.com.
- Introduction to the Java NIO2 File API at Baeldung.com.
Legacy
Before Java 7, you might use the legacy methods createTempFile found on the File class. Notice the name “File” is singular, in contrast to the Files class in modern NIO.2.
| Legacy | Use default temp folder | Specify folder |
|---|---|---|
| Create folder | — | — |
| Create file | File.createTempFile |
File.createTempFile |
Security note
An important difference between File.createTempFile() (singular File) and Files.createTempFile (plural Files) is also that the latter has more secure permission defaults.
When no file attributes are specified, then the resulting file may have more restrictive access permissions to files created by the
File.createTempFile(String,String,File)method.