如何禁用控制台回显

时间:2015-09-13 01:23:14

标签: java printing console

我正在编写一个命令行程序,它利用println以非常特定的格式显示文本。我遇到的问题是每当我要求用户通过Scanner.nextLine()输入内容时,控制台会自动在控制台中回显他们的输入。有没有办法禁止控制台立即显示用户输入的文本?如果重要,我正在运行Linux。

1 个答案:

答案 0 :(得分:1)

您可以使用自版本6以来Java附带的Console类和readPassword()方法。该方法禁用回显,但只读取必须转换为您需要的字符数组:

Console console = System.console();
if (console == null) {
    System.out.println("Console not active!");
    System.exit(0);
}

System.out.print("Type something, please: ");
// This won't echo anything 
char[] userInput = console.readPassword();