How to write data to a temporary file in Java
The temporary file is just a regular file created on a predefined directory. In Java, we can use the NIO Files.write()
to write data to a temporary file.
// create a temporary file
Path tempFile = Files.createTempFile(null, null);
// Writes a string to the above temporary file
Files.write(tempFile, "Hello World\n".getBytes(StandardCharsets.UTF_8));
// Append
List<String> content = Arrays.asList("Line 1", "Line 2", "Line 3");
Files.write(tempFile, content, StandardOpenOption.APPEND);
1. Write to Temporary File – Java NIO
In Java, there are many ways to write data or text to a temporary file; it works like writing to a regular file. You can choose BufferedWriter
, FileWriter
etc, but in most cases, the NIO java.nio.Files
should be enough to write or append data to a file.
1.2 This example uses java.nio.Files
to create a temporary file, write a line, append a list of lines, and read the temporary file and print put its content.
package com.mkyong.io.temp;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.StandardOpenOption;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class TempFileWrite1 {
public static void main(String[] args) {
try {
// create a temporary file
Path tempFile = Files.createTempFile(null, null);
System.out.println(tempFile);
// write a line
Files.write(tempFile, "Hello World\n".getBytes(StandardCharsets.UTF_8));
// append a list of lines, add new lines automatically
List<String> content = Arrays.asList("Line 1", "Line 2", "Line 3");
Files.write(tempFile, content, StandardOpenOption.APPEND);
// read a temp file, Java 11
//String tempFileContent = Files.readString(tempFile);
//System.out.println(tempFileContent);
// Java 8
String tempFileContent = Files
.lines(tempFile, StandardCharsets.UTF_8)
.collect(Collectors.joining(System.lineSeparator()));
System.out.println(tempFileContent);
} catch (IOException e) {
e.printStackTrace();
}
}
}
Output
/tmp/18046986236421348477.tmp
Hello World
Line 1
Line 2
Line 3
1.2 This example uses NIO Files
to create a temporary file and BufferedWriter
to write a line to the temporary file.
Path tempFile = Files.createTempFile(null, null);
try (BufferedWriter bw = new BufferedWriter(new FileWriter(tempFile.toFile()))) {
bw.write("This is the temporary file content");
}
2. Write to Temporary File – Java Legacy IO
This example uses the legacy IO java.io
to create a temporary file, BufferedWriter
to write three lines to the temporary file, and read the temporary file using BufferedReader
.
package com.mkyong.io.temp;
import java.io.*;
import java.util.Arrays;
import java.util.List;
public class TempFileWrite2 {
public static void main(String[] args) {
try {
File file = File.createTempFile("abc", ".tmp");
System.out.println(file);
// writes few lines
List<String> content = Arrays.asList("Line 1", "Line 2", "Line 3");
try (BufferedWriter bw = new BufferedWriter(new FileWriter(file))) {
for (String s : content) {
bw.write(s);
bw.write(System.lineSeparator()); // new line
}
}
// read from a temporary file
try (BufferedReader br = new BufferedReader(new FileReader(file))) {
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
Output
/tmp/abc6568347546046588668.tmp
Line 1
Line 2
Line 3
Download Source Code
$ git clone https://github.com/mkyong/core-java
$ cd java-io
thanks.
Example of the temp file that’ll be created on Windows: %USERPROFILE%\AppData\Local\Temp\tempfile1816196551136493016.tmp
For the default temporary directory on Windows 7, check Control Panel\System and Security\System – Advanced System Settings – Environment Variables – TEMP
Default temporary file directory:
Windows –
%USER%\AppData\Local\Temp
Linux –
/tmp
Thank you
You’ve Been A Big Help. Thank you for simplifying Java.