Java pour l'informatique industrielle
Chapitre 1. Introduction aux objets
Chapitre 2. Les structures de contrôle
Chapitre 3. Unifier et réutiliser
Chapitre 4. Modèle, Vue et Contrôle
Chapitre 5. Les entrées/sorties
5.1. Les tableaux
5.2. Les flots de caractères
5.2.1. Les flots de sortie standards
5.2.2. Les flots sur fichier
5.2.3. Ecriture vers un fichier texte
5.2.4. Le flot d'entrée standard
5.2.5. Lecture d'un fichier texte
5.3. Les flots d'octets
5.4. Le paquetage java.io
5.5. Java autonome
5.6. Les sockets
Page d'accueilTable des matièresNiveau supérieurPage précédenteBas de la pagePage suivante

5.2.4. Le flot d'entrée standard

L'objet System.in est le flot d'entrée standard. Il est ouvert en permanence et dirigé par défaut depuis le clavier. Sa méthode int read(byte[] buffer); lit des octets (type byte) et essaye de remplir le tableau buffer. La méthode renvoie le nombre de valeurs effectivement lues, un entier.

Comme pour les flots de sortie, il existe une classe enveloppante java.io.BufferedReader qui permet de lire ligne par ligne. Cependant la classe java.util.Scanner est plus souple d'utilisation.

try { Scanner sc = new Scanner(System.in); // ou Scanner sc = new Scanner(new FileReader("fic.txt")); String lu = sc.nextLine(); // ou int v = sc.nextInt(); // si on veut lire un entier } catch(Exception e) { System.err.println("Erreur de lecture : "+e); }

Le programme ci-dessus ne fait rien d'intéressant, il illustre simplement l'utilisation de la classe Scanner pour lire sur l'entrée standard.

La classe Scanner offre des méthodes pour lire des valeurs correspondants à chaque type primitif : nextInt, nextBoolean, nextFloat, etc.

Elle offre aussi des méthodes pour savoir si une donnée de tel ou tel type est disponible en lecture : hasNextLine() pour savoir si le flot est terminé ou non, hasNextInt() pour savoir si la donnée suivante est un entier, etc.

La classe java.io.FileReader permet d'ouvrir un flot d'entrée (lecture) de caractères vers un fichier.

Page d'accueilTable des matièresNiveau supérieurPage précédenteHaut de la pagePage suivante