Estoy buscando una forma segura de crear un archivo temporal en Java. Por seguro, me refiero a lo siguiente:
- El nombre debe ser único, incluso bajo posibles condiciones de carrera (por ejemplo, otro subproceso llama a la misma función al mismo tiempo u otro proceso ejecuta este código simultáneamente)
- El archivo debe ser privado, incluso bajo posibles condiciones de carrera (por ejemplo, otro usuario intenta modificar el archivo a una velocidad alta)
- Puedo decirle que elimine el archivo, sin tener que hacer una eliminación genérica y correr el riesgo de eliminar el archivo incorrecto.
- Idealmente, debería asegurarse de que el archivo se elimine, incluso si se lanza una excepción antes de tener la oportunidad de
- El archivo debe tener por defecto una ubicación sana (por ejemplo, el directorio tmp especificado por JVM, por defecto el directorio temporal del sistema)
File f = File.createTempFile(prefix, extension)
. Se colocará en el directorio temporal. Y conf.deleteOnExit()
él se eliminará automáticamente al salir.