【发布时间】:2018-02-01 01:55:59
【问题描述】:
我正在尝试在 Java 中创建静态方法,该方法将返回从用户键盘输入收集的字符串。非静态方法 readKey 工作正常,但我需要创建 ATM 类的实例,而不是创建 BufferedReader。
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();
}
}
在提供一些输入并按 Enter 时,我收到以下错误:
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)
感谢您的宝贵时间,希望我的问题得到很好的描述。
【问题讨论】:
-
好吧,不要关闭流。
-
但是在关闭流之前我已经将值传递给键 String - 对吧?
标签: java