Como salvar arquivos de mesmo nome com Java sem sobrescreve-los

Estou salvando arquivos em uma pasta utilizando o java, da seguinte forma
FileUtils.writeStringToFile(new File(enderecoDaPasta), conteudo, "UTF-8");
O código abaixo está funcionando, porém se gravo dois arquivos de mesmo nome, o arquivo enviado por último sobrescreve o primeiro. Gostaria que um arquivo não sobrescrevesse o outro, assim como quando colamos dois arquivos de mesmo nome o windows faz eles se organizarem da seguinte forma

nomeDoArquivo.txt
nomeDoArquivo(1).txt
nomeDoArquivo(2).txt

Gostaria de sugestões para resolver esse problema de maneira elegante

A classe File contém o método exists(), que você pode usar para verificar se já existe um arquivo com o mesmo nome. Se existir, você gera um novo nome. Inclusive, seria prático criar um método só pra gerar o nome. Algo como:

public File criarArquivo(String caminho, String nome, String extensao){
  File f = new File(caminho + nome + extensao);
  if (!f.exists() && !f.isDirectory()){
    return f;
  } else {
    int index = 1;
   do {
    f = new File(caminho + nome + "(" + indice + ")" + extensao);
   } while(f.exists());
   return f;
}

Deve haver algo mais completo e funcional na net, se você der uma procurada.

Abraço.

1 curtida
public File criarArquivo(String caminho, String nome, String extensao){
    File f = new File(caminho + nome + extensao);
    if (!f.exists() && !f.isDirectory()){
      return f;
    } else {
      int index = 1;
     do {
      f = new File(caminho + nome + "(" + index + ")" + extensao);
      index++;
     } while(f.exists());
     return f;
    }
}