Ett föreläsningsutdrag med en mentor som en del av Codegym University-kursen. Anmäl dig till hela kursen.


"Amigo, din tid har kommit. Jag ska nu berätta om tangentbordsinmatning."

"Vi har använt System.out för att visa data på skärmen. För att ta emot input använder vi System.in ."

"Låter lätt."

"Men System.in har en brist – den låter oss bara läsa teckenkoder från tangentbordet. För att komma runt det här problemet och läsa stora databitar på en gång använder vi en mer komplex konstruktion:"

Exempel 1
Mata in en sträng och ett nummer från tangentbordet
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.
Exempel 2
En mer kompakt version av föregående exempel:
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

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

"Några frågor?"

"Äh...jag förstod ingenting."

"För att läsa en sträng från tangentbordet är det bekvämast att använda ett BufferedReader- objekt . Men för att göra det måste du skicka in objektet du ska läsa data från. I det här fallet System.in ."

"Men System.in och BufferedReader är inkompatibla, så vi använder en annan adapter - ett annat InputStreamReader- objekt."

"Jag tror jag förstår det nu. Vad är den här skannerklassen ?"

"Skanner kan vara bekvämt, men det är inte särskilt användbart. Saken är att när du fortsätter (både i studier och arbete), kommer du att använda BufferedReader och InputStreamReader ofta, men Scanner - mycket sällan. Det är praktiskt i vårt exempel, men i i framtiden kommer det inte att vara användbart så ofta. Så vi kommer inte att använda det mycket ."

"Det verkar tydligt, men jag är inte säker på att jag förstod allt."