« Amigo, l'heure est venue. Je vais te parler de la saisie au clavier. »

« Nous avons utilisé System.out pour afficher des données à l'écran. Pour recevoir des données, nous utiliserons System.in. »

« Ça m'a l'air simple. »

« Mais System.in a un petit problème : il nous permet seulement de lire les codes des caractères à partir du clavier. Pour contourner ce problème et lire de gros morceaux de données à la fois, nous allons utiliser une construction plus complexe : »

Exemple 1
Saisis une chaîne et un nombre au clavier
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
Mission
Syntaxe Java,  niveau 3leçon 7
Bloqué
Saisie de code
Parfois, inutile de réfléchir, il suffit de le marteler ! Aussi paradoxal que cela puisse paraître, il arrive que tes doigts se « souviennent » mieux des choses que ton esprit conscient. C'est pourquoi la formation du centre secret CodeGym comprend parfois des tâches qui t'obligent à saisir le code. En saisissant le code, tu t'habitues à la syntaxe et tu gagnes un peu de matière noire. Et rien de mieux pour combattre la paresse !
Exemple 2
Une version plus compacte de l'exemple précédent :
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

String name = reader.readLine();
String sAge = reader.readLine();
int nAge = Integer.parseInt(sAge);
Exemple 3
Encore plus compact
Scanner scanner = new Scanner(System.in);
String name = scanner.nextLine();
int age = scanner.nextInt();

« Des questions ? »

« Euh... j'ai rien compris. »

« Pour lire une chaîne à partir du clavier, il est plus commode d'utiliser un objet BufferedReader. Mais pour ce faire, tu dois passer l'objet à partir duquel tu vas lire les données. Dans notre cas, System.in. »

« Mais System.in et BufferedReader sont incompatibles, donc nous utilisons un autre adaptateur : un autre objet InputStreamReader. »

« Je crois que je comprends maintenant. C'est quoi, cette classe Scanner ? »

« La classe Scanner peut être pratique, mais elle n'est pas très utile. À vrai dire, par la suite (dans tes études et dans ton travail), tu utiliseras BufferedReader et InputStreamReader souvent, mais Scanner bien plus rarement. Cette classe est pratique dans notre exemple, mais à l'avenir, elle ne nous sera pas utile très souvent. Donc nous ne l'utiliserons pas beaucoup. »

« Cela me semble clair, mais je ne suis pas sûr d'avoir tout compris. »