Бывают случаи, когда нам нужно на лету создавать временные файлы, чтобы хранить некоторую информацию, а затем удалять их.
В 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» - это суффикс.
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();
}
} }
Дальнейшее чтение: