CodeGym /Cours Java /Syntaxe Java /Saisie au clavier

Saisie au clavier

Syntaxe Java
Niveau 3 , Leçon 7
Disponible

« 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.
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. »

Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION