Feche um arquivo criado com FileOutputStream, para uma próxima exclusão

Atualmente estou enfrentando algum problema com um FileOutputStream no meu código Java.

Na verdade, estou usando um FileOutputStream para criar um arquivo, mas depois que o arquivo é criado, não há como excluí-lo. Tanto quanto eu poderia entender, isso pode vir do fato de que o FileOutputstream não está fechado.

Abaixo abaixo meu código resumido:

     outFile = new FileOutputStream(dir+"\\"+fileName);
     outFile.write("Test");
     outFile.flush();
     outFile.close();
     outFile = null;
     System.gc();

Então não há como excluir o arquivo, mesmo "manualmente". Quando meu programa é iniciado, não consigo deletá-lo no Windows com um simples del. Eu também tentei remover o conteúdo da pastadir e não funcionou nem, usando este código:

static public void delDir( String place )

{
    File path = new File( place );
    System.out.println(path.exists());//return true
    if( path.exists() )
        {
        File[] f = path.listFiles();
        for( int j = 0 ; j < f.length ; j++ )
            {
            if( f[ j ].isDirectory() )
                {
                deleteDirectory( path+"\\"+f[ j ] );
                }
            f[ j ].delete();
            }
        }
}

Então minha pergunta é: Como fechar este arquivo para uma próxima exclusão (ou como excluí-lo corretamente se não pudermos fechá-lo)?

questionAnswers(7)

yourAnswerToTheQuestion