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