I'm writing a simple program that reads and processes file content using a BufferedReader
.
BufferedReader br = new BufferedReader( new InputStreamReader(System.in) );
System.out.println("Enter the file name to read");
String fileName = br.readLine();
br.close();
// Process file contents
br = new BufferedReader( new InputStreamReader(System.in) );
System.out.println("Enter another file name to read");
fileName = br.readLine();
br.close();
But when I call second br.readLine()
to read another file name, I get the following exception:
Exception in thread "main" java.io.IOException: Stream closed
I don't understand how the System.in
stream can be closed.
What mistake am I making and how do I fix this?
The stream is closed because you're closing it with the first
that you issue after having read the filename.
Don't close that reader, and don't create a new one for
System.in
- just re-use that one. Use a different one for reading from the file though.