„Amigo, deine Zeit ist gekommen. Jetzt werde ich dir etwas über die Tastatureingabe erzählen.“

„Wir haben System.out verwendet, um Daten auf dem Bildschirm anzuzeigen. Um Eingaben zu erhalten, verwenden wir System.in.“

„Das hört sich einfach an.“

„Aber System.in hat ein Manko: Wir können damit nur Zeichencodes von der Tastatur einlesen. Um dieses Problem zu umgehen und große Datenmengen auf einmal zu lesen, verwenden wir ein komplexeres Konstrukt:“

Beispiel 1
Eine Zeichenkette und eine Zahl über die Tastatur eingeben
InputStream inputStream = System.in;
Reader inputStreamReader = new InputStreamReader(inputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);

String name = bufferedReader.readLine(); //Eine Zeichenkette von der Tastatur lesen
String sAlter = bufferedReader.readLine(); //Eine Zeichenkette von der Tastatur lesen
int nAlter = Integer.parseInt(sAlter); //Die Zeichenkette in eine Zahl umwandeln
1
Aufgabe
Java Syntax,  Level 3Lektion 7
Gesperrt
Code-Eingabe
Manchmal darf man gar nicht nachdenken, man muss es einfach raushauen! Auch wenn es sich paradox anhört, manchmal „erinnern“ sich deine Finger besser als dein bewusster Verstand. Deshalb wirst du es im Rahmen der Schulung im geheimen CodeGym-Zentrum manchmal mit Aufgaben zu tun bekommen, bei denen du Code eingeben musst. Wenn du Code eingibst, gewöhnst du dich an die Syntax und sammelst ein wenig dunkle Materie. Außerdem tust du etwas gegen deine Faulheit!
Beispiel 2
Eine kompaktere Version des vorherigen Beispiels:
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

String name = reader.readLine();
String sAlter = reader.readLine();
int nAlter = Integer.parseInt(sAlter);
Beispiel 3
Noch kompakter
Scanner scanner = new Scanner(System.in);
String name = scanner.nextLine();
int alter = scanner.nextInt();

„Irgendwelche Fragen?“

„Äh... Ich habe nichts davon verstanden.“

„Wenn du eine Zeichenkette von der Tastatur einlesen möchtest, nutzt du am besten ein BufferedReader -Objekt. Aber dafür musst du das Objekt übergeben, von dem du Daten lesen willst. In diesem Fall ist das System.in.“

„Aber System.in und BufferedReader sind inkompatibel, also verwenden wir einen Adapter – ein InputStreamReader-Objekt.“

„Ich glaube, jetzt verstehe ich es. Was ist diese Scanner-Klasse?“

„Scanner kann praktisch sein, ist aber nicht sehr nützlich. Die Sache ist die, dass du auf deinem weiteren Weg (sowohl beim Lernen als auch bei der Arbeit) sehr oft BufferedReader und InputStreamReader verwenden wirst, Scanner dagegen nur sehr selten. In unserem Beispiel ist es praktisch, aber in Zukunft wirst du es nicht sehr oft gebrauchen können. Also werden wir es nicht so oft verwenden.“

„Okay, aber ich bin mir nicht sicher, ob ich alles verstanden habe.“