I'm trying to create static method in Java which would return String gathered from users input from keyboard. Non static method readKey works fine but instead of creating BufferedReader I need to create instance of ATM class.
public class ATM {
public String readKey() {
String key = null;
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
try {
key = bufferedReader.readLine();
} catch (IOException e) {
e.printStackTrace();
}
try {
bufferedReader.close();
} catch (IOException e) {
e.printStackTrace();
}
return key;
}
public static String rKey() {
String key = null;
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
try {
key = bufferedReader.readLine();
} catch (IOException e) {
e.printStackTrace();
}
try {
bufferedReader.close();
} catch (IOException e) {
e.printStackTrace();
}
return key;
}
public static void main(String[] args) {
String cardNumber = rKey();
String cardPin = rKey();
}
}
While providing some input and pressing enter I receive following error:
java.io.IOException: Stream closed
at java.io.BufferedInputStream.getBufIfOpen(Unknown Source)
at java.io.BufferedInputStream.read(Unknown Source)
at sun.nio.cs.StreamDecoder.readBytes(Unknown Source)
at sun.nio.cs.StreamDecoder.implRead(Unknown Source)
at sun.nio.cs.StreamDecoder.read(Unknown Source)
at java.io.InputStreamReader.read(Unknown Source)
at java.io.BufferedReader.fill(Unknown Source)
at java.io.BufferedReader.readLine(Unknown Source)
at java.io.BufferedReader.readLine(Unknown Source)
at packageX.ATM.rKey(ATM.java:31)
at packageX.ATM.main(ATM.java:68)
Thank you for you time, hope that my problem is well described.