我的BufferedReader实例在前进之前没有等待用户输入,这是一个问题。
static BufferedReader in;
public class {
public static void main(String[] args) {
try{
in = new BufferedReader(new InputStreamReader(System.in));
String input;
System.out.println("prompt");
input = in.readLine();
if(input.equals("Y")){
//do something
}else {
//do something else
}
}catch(IOException ioe) {
ioe.printStackTrace();
}
}
}
实际情况是,当我运行程序时,它只是跳过in.readLine((,并在if语句中抛出一个null异常。我对正在发生的事情感到不知所措,因为我在另一个仍然有效的项目中使用了相同的代码。
谢谢!
找到了答案。使用gradle运行程序,而我的任务没有standardInput=System.in的参数。仍然习惯于项目构建软件!
是的,您必须处理异常,只需添加以下内容:
public static void main(String[] args) throws IOException {
in = new BufferedReader(new InputStreamReader(System.in));
String input;
System.out.println("prompt");
input = in.readLine();
if(input.equals("Y")){
System.out.println("it works !!");
}else {
System.out.println("it's not a Y :(");
}
}