java bufferedreader.readline()未等待用户输入

inn6fuwd  于 2021-07-08  发布在  Java
关注(0)|答案(2)|浏览(380)

我的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异常。我对正在发生的事情一无所知,因为我在另一个仍然有效的项目中使用了相同的代码。
谢谢!

qnyhuwrf

qnyhuwrf1#

找到了答案。使用gradle运行程序时,我的任务没有standardinput=system.in的参数。仍然习惯于项目构建软件!

kr98yfug

kr98yfug2#

是的,您必须处理例外情况,只需添加以下内容:

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 :(");
        }
    }

相关问题