Java中的“System.in.read()”

时间:2013-11-23 15:29:05

标签: java system.in

我对此方法有疑问:

public void runTransaction(){
   //Some calculations...
   wait();
   //Other calculations...
}

private static void wait(){
   try {
        System.out.println("Press <enter> to continue");
        System.in.read();
    } 
    catch (java.io.IOException ex) {
        System.out.println("Input error...");
    }
}

但按Enter后程序不会继续。我正在使用Ubuntu 12.04。

编辑:程序会打印消息“按继续”,但在此之后不再继续,它只是等待输入。

3 个答案:

答案 0 :(得分:1)

这甚至不应该编译:

  1. in.read()可以抛出您需要处理的IOException。 (编辑:看起来您在代码段中修复了此问题。)

  2. 您无法将此方法命名为wait(),因为这会隐藏Object的{​​{3}}。

  3. 纠正这些错误后,代码应按预期工作。

答案 1 :(得分:0)

你的代码甚至可以编译吗? wait方法在Object类上是公共的,因此不能将其重写为私有。尝试使用其他方法名称,例如waitForInput

答案 2 :(得分:0)

如果您已将名称更改为wait_enter,则您的代码应按预期运行,您只需确保在按Enter键之前已单击进入控制台,因此它会注册回车。