2015-11-13 2 views
2

Я создаю консольное приложение, которое будет запрашивать у пользователя ton ввести имя пользователя и пароль, сохранить их в объекте как строки и сохранить объект в связанном по ссылке ссылке.Пользовательский ввод консоли маски

Есть ли способ, когда пользователь вводит свой пароль, он будет отображаться как «*****» вместо «12345», в то время как система (очевидно) читает «12345»?

У меня есть класс с методами, подходящими для ввода пользователем.

System.out.println("Username: "); 
String un = EasyIn.getString(); 
System.out.println("Password: "); 
String pw = reader.getString(); 
System.out.println("Repeat Password: "); 
String pwRepeat = reader.getString(); 
//and then go on to confirm that the passwords match and store them in the object etc 
+0

Стандартный 'java.io.Console' может скрывать только пароль, но он не может маскировать символы ввода звездочками. Внедрение маскировки со звездочками с нуля может быть утомительным (и не переносимым). Поэтому взгляните на библиотеку JLine (http://jline.sourceforge.net). Этот фрагмент поможет 'String password = new jline.ConsoleReader(). ReadLine (новый символ ('*'));' – flaz14

ответ

2

Вы можете использовать класс Console

http://docs.oracle.com/javase/6/docs/api/java/io/Console.html

и метод чтения пароль: http://docs.oracle.com/javase/6/docs/api/java/io/Console.html#readPassword()

Метод readPassword обеспечивает форматированный запрос, а затем считывает пароль или ключевую фразу из консоли с эхом отключен.

Смежные вопросы