¿Cómo puedo solucionar una excepción "IOException: Stream cerrado" usando System.in

Estoy escribiendo un programa simple que lee y procesa el contenido del archivo usando unaBufferedReader.

BufferedReader br = new BufferedReader( new InputStreamReader(System.in) );

System.out.println("Enter the file name to read");
String fileName = br.readLine();
br.close();

br = new BufferedReader( new FileReader(fileName) );
// Process file contents
br.close();

br = new BufferedReader( new InputStreamReader(System.in) );
System.out.println("Enter another file name to read");
fileName = br.readLine();
br.close();

Pero cuando llamo abr.readLine() para leer otro nombre de archivo, obtengo la siguiente excepción:

Exception en el hilo "main" java.io.IOException: Stream cerrado

No entiendo cómo elSystem.in stream se puede cerrar. ¿Qué error estoy cometiendo y cómo soluciono esto?

Respuestas a la pregunta(2)

Su respuesta a la pregunta