mak*_*chi 74 java console-application
我有一个控制台应用程序,在执行其任务后,必须向用户提供反馈,例如"操作已完成"或"操作失败"以及详细错误.
问题是,如果我只是"让它运行",输出消息将被打印,但控制台将很快关闭,没有时间阅读消息.
据我所知,在C++中,每个控制台应用程序都将以"按任意键退出"或类似的结尾.在C#中我可以用a来模拟这种行为
Console.ReadKey();
Run Code Online (Sandbox Code Playgroud)
但是我怎么能用Java做呢?我正在使用Scanner类,但鉴于"输入"是我的Scanner实例:
input.next()
System.exit(0);
Run Code Online (Sandbox Code Playgroud)
"任何关键"都可以使用,除了返回,这在这里是非常重要的.有什么指针吗?
x4u*_*x4u 90
在Java中,这将是 System.in.read()
Pet*_*lák 19
我想补充一点,通常你会希望程序只有在连接到控制台时才会等待.否则(如果它是管道的一部分)没有必要打印消息或等待.为此你可以Console
像这样使用Java :
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();
}
}
Run Code Online (Sandbox Code Playgroud)
小智 11
public static void main(String args[])
{
Scanner s = new Scanner(System.in);
System.out.println("Press enter to continue.....");
s.nextLine();
}
Run Code Online (Sandbox Code Playgroud)
这nextline
是一个非常好的选项,因为每当按下回车键时它都会帮助我们运行下一行。
小智 7
你可以nextLine();
暂停使用
import java.util.Scanner
//
//
Scanner scan = new Scanner(System.in);
void Read()
{
System.out.print("Press any key to continue . . . ");
scan.nextLine();
}
Run Code Online (Sandbox Code Playgroud)
但是你按下的任何按钮除外Enter
意味着你必须在此之后按Enter键,但我发现它比它好scan.next();
小智 5
我使用了简单的技巧,要求Windows使用cmd命令,并将其发送为null。
// Class for Different hacks for better CMD Display
import java.io.IOException;
public class CMDWindowEffets
{
public static void getch() throws IOException, InterruptedException
{
new ProcessBuilder("cmd", "/c", "pause > null").inheritIO().start().waitFor();
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
194954 次 |
最近记录: |