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)
Excluir ao sair não excluirá o arquivo, se a VM sair com uma exceção.
—
Johannes
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.