Cierre un archivo creado con FileOutputStream, para una próxima eliminación

Actualmente estoy enfrentando algún problema con un FileOutputStream en mi código Java.

En realidad estoy usando un FileOutputStream para crear un archivo, pero una vez que se crea el archivo no hay forma de eliminarlo. Por lo que pude entender, esto puede deberse al hecho de que FileOutputstream no está cerrado.

A continuación mi código resumido:

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

Entonces no hay manera de eliminar el archivo, incluso "a mano". Cuando se inicia mi programa, no puedo eliminarlo en Windows con un simple del. También intenté eliminar el contenido de la carpeta.dir y tampoco funcionó, 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();
            }
        }
}

Así que mi pregunta es: ¿Cómo cerrar este archivo para una próxima eliminación (o cómo eliminarlo correctamente si no podemos cerrarlo)?

Respuestas a la pregunta(7)

Su respuesta a la pregunta