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:"
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.
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);
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."
GO TO FULL VERSION