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.
1
Tarefa
Java Syntax,  nível 3lição 7
Bloqueado
Code entry
Sometimes you don't need to think, you just need to hammer it out! As paradoxical as it may seem, sometimes your fingers will "remember" better than your conscious mind. That's why while training at the secret CodeGym center you will sometimes encounter tasks that require you to enter code. By entering code, you get used to the syntax and earn a little dark matter. What's more, you combat laziness.
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."