Le flux de données provenant du clavier est désigné par l'objet System.in de type InputStream. Ce type d'objets permet de lire des données caractère par caractère. C'est au programmeur de retrouver ensuite dans ce flux de caractères les informations qui l'intéressent. Le type InputStream ne permet pas de lire d'un seul coup une ligne de texte. Le type BufferedReader le permet avec la méthode readLine.
Afin de pouvoir lire des lignes de texte tapées au clavier, on crée à partir du flux d'entrée System.in de type InputStream, un autre flux d'entrée de type BufferedReader cette fois :
- Code:
-
BufferedReader IN=new BufferedReader(new InputStreamReader(System.in));
Nous n'expliquerons pas ici les détails de cette instruction qui fait intervenir la notion de constructions d'objets. Nous
l'utiliserons telle-quelle.
La construction d'un flux peut échouer : une erreur fatale, appelée exception en Java, est alors générée. A chaque fois qu'une
méthode est susceptible de générer une exception, le compilateur Java exige qu'elle soit gérée par le programmeur. Aussi, pour
créer le flux d'entrée précédent, il faudra en réalité écrire :
- Code:
-
BufferedReader IN=null;
try{
IN=new BufferedReader(new InputStreamReader(System.in));
} catch (Exception e){
System.err.println("Erreur " +e);
System.exit(1);
}
De nouveau, on ne cherchera pas à expliquer ici la gestion des exceptions. Une fois le flux IN précédent construit, on peut lire
une ligne de texte par l'instruction :
- Code:
-
String ligne;
ligne=IN.readLine();
La ligne tapée au clavier est rangée dans la variable ligne et peut ensuite être exploitée par le programme.