使控制台等待用户输入关闭

2022-08-31 11:35:27

我有一个控制台应用程序,在执行其任务后,必须向用户提供反馈,例如“操作已完成”或“操作失败”以及详细的错误。

问题是,如果我只是“让它运行”,输出消息将被打印,但控制台将很快关闭,没有时间阅读消息。

据我所知,在C++,每个控制台应用程序都将以“按任意键退出”或类似内容结尾。在 C# 中,我可以使用

Console.ReadKey();

但是我该如何在Java中做到这一点呢?我正在使用 Scanner 类,但鉴于“input”是我的 Scanner 实例:

input.next()
System.exit(0);

“任何键”都可以工作,除了返回,这在这里是一件大事。任何指针?


答案 1

在Java中,这将是System.in.read()


答案 2

我想补充一点,通常您希望程序仅在连接到控制台时才等待。否则(例如,如果它是管道的一部分),则打印消息或等待是没有意义的。为此,你可以像这样使用Java:Console

import java.io.Console;
// ...
public static void waitForEnter(String message, Object... args) {
    Console c = System.console();
    if (c != null) {
        // printf-like arguments
        if (message != null)
            c.format(message, args);
        c.format("\nPress ENTER to proceed.\n");
        c.readLine();
    }
}

推荐