En forelesningsbit med en mentor som en del av Codegym University-kurset. Meld deg på hele kurset.


"Amigo, tiden din er inne. Jeg skal nå fortelle deg om tastaturinndata."

"Vi har brukt System.out for å vise data på skjermen. For å motta input bruker vi System.in ."

"Høres lett ut."

"Men System.in har en mangel – den lar oss bare lese tegnkoder fra tastaturet. For å komme rundt dette problemet og lese store databiter på en gang, bruker vi en mer kompleks konstruksjon:"

Eksempel 1
Tast inn en streng og et tall fra tastaturet
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.
Eksempel 2
En mer kompakt versjon av forrige eksempel:
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

String name = reader.readLine();
String sAge = reader.readLine();
int nAge = Integer.parseInt(sAge);
Eksempel 3
Enda mer kompakt
Scanner scanner = new Scanner(System.in);
String name = scanner.nextLine();
int age = scanner.nextInt();

"Noen spørsmål?"

"Øh...jeg skjønte ingenting."

"For å lese en streng fra tastaturet er det mest praktisk å bruke et BufferedReader- objekt . Men for å gjøre det må du sende inn objektet du skal lese data fra. I dette tilfellet System.in ."

"Men System.in og BufferedReader er inkompatible, så vi bruker en annen adapter – et annet InputStreamReader- objekt."

"Jeg tror jeg skjønner det nå. Hva er denne skannerklassen ?"

"Scanner kan være praktisk, men det er ikke veldig nyttig. Saken er at når du fortsetter (både i studier og arbeid), vil du bruke BufferedReader og InputStreamReader ofte , men Scanner - svært sjelden. Det er praktisk i vårt eksempel, men i i fremtiden vil det ikke være nyttig så ofte. Så vi vil ikke bruke det mye ."

"Det virker klart, men jeg er ikke sikker på at jeg forsto alt."