guardar directorio crear archivos archivo java temporary-files

directorio - ¿Cuál es una forma segura de crear un archivo Temp en Java?



crear un archivo en un directorio java (2)

Desde Java 7 existe el nuevo archivo API "NIO2" que contiene nuevos métodos para crear archivos y directorios temnp. Ver

p.ej

Path tempDir = Files.createTempDirectory("tempfiles");

o

Path tempFile = Files.createTempFile("tempfiles", ".tmp");

Estoy buscando una forma segura de crear un archivo temporal en Java. Por seguro, quiero decir lo siguiente:

  • El nombre debe ser único, incluso en condiciones de carrera potenciales (por ejemplo, otro Thread llama a la misma función al mismo tiempo u otro proceso ejecuta este código simultáneamente)
  • El archivo debe ser privado, incluso en condiciones potenciales de carrera (por ejemplo, otro usuario intenta cambiar el archivo a alta velocidad)
  • Puedo decirle que elimine el archivo, sin que tenga que hacer una eliminación genérica, y corro el riesgo de eliminar el archivo incorrecto
  • Idealmente, debería garantizar que el archivo se elimine, incluso si se produce una excepción antes de que tenga la oportunidad de
  • El archivo debe tener una ubicación correcta (p. Ej., El directorio tmp especificado por JVM, predeterminado en el directorio temporal del sistema)

Use File.createTempFile() .

File tempFile = File.createTempFile("prefix-", "-suffix"); //File tempFile = File.createTempFile("MyAppName-", ".tmp"); tempFile.deleteOnExit();

Creará un archivo en el directorio temporal, como:

prefijo-6340763779352094442-sufijo