Java IO Tutorial

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.

TempFileWrite1.java

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

Terminal

/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.

TempFileWrite2.java

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

Terminal

/tmp/abc6568347546046588668.tmp
Line 1
Line 2
Line 3

Download Source Code

$ git clone https://github.com/mkyong/core-java

$ cd java-io

References

About Author

author image
Founder of Mkyong.com, love Java and open source stuff. Follow him on Twitter. If you like my tutorials, consider make a donation to these charities.

Comments

Subscribe
Notify of
4 Comments
Most Voted
Newest Oldest
Inline Feedbacks
View all comments
george herson
11 years ago

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

jesus92gz
8 years ago

Thank you

Ahmaad
11 years ago

You’ve Been A Big Help. Thank you for simplifying Java.