Я ищу безопасный способ создать временный файл на Java. Под безопасностью я имею в виду следующее:
- Имя должно быть уникальным даже в условиях потенциальной гонки (например, другой поток одновременно вызывает ту же функцию или другой процесс одновременно запускает этот код)
- Файл должен быть приватным, даже в условиях потенциальной гонки (например, другой пользователь пытается выполнить chmod файл с высокой скоростью)
- Я могу сказать ему, чтобы он удалил файл без общего удаления, и рискую удалить не тот файл
- В идеале следует убедиться, что файл удален, даже если возникнет исключение, прежде чем я получу возможность
- Файл должен по умолчанию находиться в разумном месте (например, JVM, указанный в каталоге tmp, по умолчанию - в системном временном каталоге)
File f = File.createTempFile(prefix, extension)
. Он будет помещен во временный каталог. И приf.deleteOnExit()
выходе автоматически удаляется.