#8 Dios mio, mis ojos!
Mira estas cosas a ver si ves algo "mejorable" (en cuanto a forma de escribirlo)
1)
if (file.createNewFile() == true)
Comparar con "true" no tiene sentido. Si file.createNewFile() es true entonces ya tienes el true, y si es false también tienes el false. ¿Ves que la condición es directamente el resultado? Para que lo veas de otra forma, si te dijera:
Compara si el valor de x es menor que el de y tu harías (supongo)
if (x < y)
Sin embargo lo que tu haces con el createNewFile sería el equivalente a:
if ( (x < y) == true)
2)
if (file.createNewFile() == true) {
controlCreate = true; // Curiosamente el mismo valor que file.createNewFile()
} else {
controlCreate = false; // Curiosamente el mismo valor que file.createNewFile()
}