Você está aqui: Java ::: Pacote java.io ::: Console |
Como usar o método readPassword() da classe Console para ler senhas em janelas de prompt de comandoQuantidade de visualizações: 7271 vezes |
Em algumas situações gostaríamos que o usuário informasse uma senha para nossas aplicações rodando em janelas de prompt de comando. No entanto, queremos que a senha não seja vista, ou seja, o usuário digitará os caracteres da senha mas estes não serão exibidos na janela de prompt. Para realizar tal tarefa nós podemos usar o método readPassword() da classe Console. Veja sua assinatura:public char[] readPassword() Veja que a senha informada é retornada como uma matriz de char. Veja um exemplo: import java.io.Console; import java.util.Arrays; public class Estudos { public static void main(String[] args) { // vamos obter o console para a JVM atual Console console = System.console(); // vamos testar se o console foi obtido com sucesso if(console != null){ // vamos pedir ao usuário que informe a senha System.out.print("Informe a senha: "); char senha[] = console.readPassword(); // vamos mostrar a senha que foi informada System.out.print("A senha informada foi: "); for(int i = 0; i < senha.length; i++){ System.out.print(senha[i]); } } else{ System.out.println("Não foi possível obter o console"); } System.out.println("\n\n"); } } Ao executarmos este código teremos o seguinte resultado: Informe a senha: [digitei a senha e pressionei Enter] A senha informada foi: 1234 Há uma sobrecarga do método readPassword() com a seguinte assinatura: public char[] readPassword(String fmt, Object... args) Esta versão nos permite exibir uma mensagem formatada solicitando a informação que desejamos. O parâmetro fmt define a string de formatação da mensagem. O parâmetro args representa objetos ou variáveis que terão seus valores inseridos na string de formatação. Veja um exemplo: import java.io.Console; import java.util.Arrays; public class Estudos { public static void main(String[] args) { // vamos obter o console para a JVM atual Console console = System.console(); // vamos testar se o console foi obtido com sucesso if(console != null){ String usuario = "admin"; // vamos pedir ao usuário que informe a senha char senha[] = console.readPassword("Senha do usuário %s: ", usuario); // vamos mostrar a senha que foi informada System.out.print("A senha informada foi: "); for(int i = 0; i < senha.length; i++){ System.out.print(senha[i]); } } else{ System.out.println("Não foi possível obter o console"); } System.out.println("\n\n"); } } Ao executar este código teremos o seguinte resultado: Senha do usuário admin: [digitei a senha e pressionei Enter] A senha informada foi: 1234 Fique atento ao fato de que o método readPassword() pode lançar uma exceção do tipo IllegalFormatException se a string de formatação estiver incorreta e uma exceção do tipo IOError se houver algum erro de entrada e saída. |
![]() |
Desafios, Exercícios e Algoritmos Resolvidos de Java |
Veja mais Dicas e truques de Java |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |