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)
java
temporary-files
SRobertJames
fuente
fuente
File f = File.createTempFile(prefix, extension)
. Se colocará en el directorio temporal. Y conf.deleteOnExit()
él se eliminará automáticamente al salir.Respuestas:
Utilice
File.createTempFile()
.Creará un archivo en el directorio temporal, como:
fuente
tempFile.delete()
además deldeleteOnExit
(ya que no quiero tener hordas de archivos temporales merodeando antes de salir)?Desde Java 7 existe la nueva API de archivos "NIO2" que contiene nuevos métodos para crear archivos y directorios temnp. Ver
p.ej
o
fuente
no requiere prefijo.
fuente