Um trecho de palestra com um mentor como parte do curso Codegym University. Inscreva-se no curso completo.


"Amigo, sua hora chegou. Agora vou falar sobre a entrada do teclado."

"Usamos System.out para exibir dados na tela. Para receber entrada, usaremos System.in ."

"Parece fácil."

"Mas System.in tem uma falha - ele só nos permite ler códigos de caracteres do teclado. Para contornar esse problema e ler grandes blocos de dados de uma só vez, usaremos uma construção mais complexa:"

Exemplo 1
Insira uma string e um número no teclado
InputStream inputStream = System.in;
Reader inputStreamReader = new InputStreamReader(inputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);

String name = bufferedReader.readLine(); //Read a string from the keyboard
String sAge = bufferedReader.readLine(); //Read a string from the keyboard
int nAge = Integer.parseInt(sAge); //Convert the string to a number.
Exemplo 2
Uma versão mais compacta do exemplo anterior:
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

String name = reader.readLine();
String sAge = reader.readLine();
int nAge = Integer.parseInt(sAge);
Exemplo 3
Ainda mais compacto
Scanner scanner = new Scanner(System.in);
String name = scanner.nextLine();
int age = scanner.nextInt();

"Alguma pergunta?"

"Uh... eu não entendi nada."

"Para ler uma string do teclado, é mais conveniente usar um objeto BufferedReader . Mas para fazer isso você tem que passar o objeto do qual você vai ler os dados. Neste caso, System.in ."

"Mas System.in e BufferedReader são incompatíveis, então usamos outro adaptador - outro objeto InputStreamReader ."

"Acho que entendi agora. O que é essa classe Scanner ?"

"Scanner pode ser conveniente, mas não é muito útil. O problema é que, à medida que você avança (tanto no estudo quanto no trabalho), você usará BufferedReader e InputStreamReader com frequência , mas Scanner - muito raramente. É conveniente em nosso exemplo, mas em no futuro, não será útil com muita frequência. Portanto, não o usaremos muito .

"Isso parece claro, mas não tenho certeza se entendi tudo."