Как создать временный файл на Java

Бывают случаи, когда нам нужно на лету создавать временные файлы, чтобы хранить некоторую информацию, а затем удалять их.

В Java мы можем использовать Files.createTempFile() методы для создания временных файлов.



Создать временные файлы

В следующем примере используется Files.createTempFile(prefix, suffix) для создания временного файла.


import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; public class CreateTempFile {
public static void main(String[] args) {

try {

// Create a temporary file

Path tempFile = Files.createTempFile('temp-', '.txt');

System.out.println('Temp file : ' + temp);

} catch (IOException e) {

e.printStackTrace();
}
} }

Выход:

Temp file : /var/folders/nyckvw0000gr/T/temp-2129139085984899264.txt

Здесь «temp-» - это префикс, а «.text» - это суффикс.


Примечание:По умолчанию Java создает временный файл во временном каталоге. Мы можем получить временный каталог, выполнив System.getProperty('java.io.tmpdir')

Если суффикс равен нулю, временный файл создается с .tmp расширение.

Например:

Path tempFile = Files.createTempFile('prefix-', null); System.out.println('Temp file : ' + tempFile); // Temp file : /var/folders/nyckvw0000gr/T/prefix-17184288103181464441.tmp

Также, если суффикс не указан, создается временный файл без расширения:

Path tempFile = Files.createTempFile(null, ''); System.out.println('Temp file : ' + tempFile); // Temp file : /var/folders/nyckvw0000gr/T/1874152090427250275

Создать временный файл в указанном каталоге

Вместо того, чтобы позволять Java выбирать каталог, мы можем указать ей, где создать временный файл.


Например:

import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; public class CreateTempFile {
public static void main(String[] args) {

try {

Path path = Paths.get('target/tmp/');

// Create a temporary file in the specified directory.

Path tempFile = Files.createTempFile(path, null, '.log');

System.out.println('Temp file : ' + temp);

} catch (IOException e) {

e.printStackTrace();
}
} }
Примечание:Указанный каталог должен существовать, чтобы в него можно было записать временный файл.

Создайте временный файл и напишите в него

В следующем примере кода создается временный файл, а затем в него записывается текст:

import java.io.IOException; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; public class CreateTempFile {
public static void main(String[] args) {

try {

Path path = Paths.get('target/tmp/');

// Create an temporary file in a specified directory.

Path tempFile = Files.createTempFile(path, null, '.log');

System.out.println('Temp file : ' + tempFile);

// write a line

Files.write(tempFile, 'Hello From Temp File '.getBytes(StandardCharsets.UTF_8));

} catch (IOException e) {

e.printStackTrace();
}
} }

Дальнейшее чтение: