如果想在控制台上获取输入的字符直接用Scanner
类就行了,但是不适合用来输入密码。如果想要输入密码,可以通过System.console()静态方法获取Console实例,Console提供一下几个方法来获取用户输入:
// 不带提示词
public String readLine(){...}
public char[] readPassword() {...}
// 带有提示词
public String readLine(String fmt, Object ... args){...}
public char[] readPassword(String fmt, Object ... args) {...}
注意:这些方法只能在控制台中使用,不能在IDE中使用,否则会抛出java.lang.NullPointerException
异常。
实例:
import java.io.Console;
public class Main{
public static void main(String[] args) {
Console console = System.console();
if (console != null) {
String username = console.readLine("Username: ");
char[] password = console.readPassword("Password: ");
System.out.printf("Hello, %s!\nYour password is %s%n", username, new String(password));
}else {
System.out.println("No console");
}
}
}
评论