Szukam bezpiecznego sposobu na utworzenie pliku tymczasowego w Javie. Przez bezpieczne rozumiem:
- Nazwa powinna być unikalna, nawet w potencjalnych warunkach wyścigu (np. Inny wątek wywołuje tę samą funkcję w tym samym czasie lub inny proces uruchamia ten kod jednocześnie)
- Plik powinien być prywatny, nawet w przypadku potencjalnych warunków wyścigu (np. Inny użytkownik próbuje chmod plik z dużą szybkością)
- Mogę powiedzieć mu, żeby usunął plik, bez konieczności usuwania ogólnego i ryzykuję usunięcie niewłaściwego pliku
- Najlepiej byłoby upewnić się, że plik został usunięty, nawet jeśli wyjątek zostanie zgłoszony, zanim będę miał okazję
- Plik powinien domyślnie znajdować się w rozsądnej lokalizacji (np. Katalog tmp określony przez maszynę wirtualną JVM, domyślnie katalog tymczasowy systemu)
File f = File.createTempFile(prefix, extension)
. Zostanie umieszczony w katalogu temp. A wraz zf.deleteOnExit()
nim zostanie automatycznie usunięty przy wyjściu.