Estou procurando uma maneira segura de criar um arquivo temporário em Java. Por seguro, quero dizer o seguinte:
- O nome deve ser único, mesmo sob condições de corrida em potencial (por exemplo, outro Thread chama a mesma função ao mesmo tempo, ou outro processo executa este código simultaneamente)
- O arquivo deve ser privado, mesmo em condições de corrida em potencial (por exemplo, outro usuário tenta o arquivo chmod em alta velocidade)
- Posso dizer para ele excluir o arquivo, sem ter que fazer uma exclusão genérica, e arriscar excluir o arquivo errado
- O ideal é garantir que o arquivo seja excluído, mesmo que uma exceção seja lançada antes que eu tenha a chance de
- O arquivo deve ser padronizado para um local adequado (por exemplo, o diretório tmp especificado pela JVM, padronizando para o diretório temporário do sistema)
java
temporary-files
SRobertJames
fonte
fonte
File f = File.createTempFile(prefix, extension)
. Ele será colocado no diretório temporário. E comf.deleteOnExit()
ele será excluído automaticamente na saída.Respostas:
Use
File.createTempFile()
.Irá criar um arquivo no diretório temporário, como:
fonte
tempFile.delete()
além dodeleteOnExit
(já que não quero ter hordas de arquivos temporários antes de sair)?Desde o Java 7, existe o novo arquivo API "NIO2" que contém novos métodos para criar arquivos e diretórios temnp. Vejo
por exemplo
ou
fonte