Todavía estoy empezando asi que perdonar si digo alguna tonteria
¿Porque al leer el fichero si entrada es distinto de null cierras el flujo? no seria if (entrada==null)?
if (entrada != null) {
try {
entrada.close();
} catch (IOException ex) {
}
}
Otra cosa como guardas los nombre en tu archivo nombres.txt?