On utilise un objet de type InputStream, ou plutôt un de ses dérivés, qui va représenter la source des données.
· class java.io.InputStream · class java.io.ByteArrayInputStream · class java.io.FileInputStream · class java.io.FilterInputStream · class java.io.BufferedInputStream · class java.util.zip.CheckedInputStream · class java.io.DataInputStream · class java.security.DigestInputStream · class java.util.zip.InflaterInputStream · class java.util.zip.GZIPInputStream · class java.util.zip.ZipInputStream · class java.io.LineNumberInputStream · class java.io.PushbackInputStream · class java.io.ObjectInputStream · class java.io.PipedInputStream · class java.io.SequenceInputStream · class java.io.StringBufferInputStream
L'objet InputStream lit une suite d'octets (Byte).
Exemple : System.in est un InputStream.
Pour un fichier texte, on utilise ensuite un objet Reader pour filtrer les octets reçus et les traduire en caractères.
· class java.io.Reader · class java.io.BufferedReader · class java.io.LineNumberReader · class java.io.CharArrayReader · class java.io.FilterReader · class java.io.PushbackReader · class java.io.InputStreamReader · class java.io.FileReader · class java.io.PipedReader · class java.io.StringReader
Les objets dérivés de Reader ont une méthode read() qui renvoie un caractère.
Reader étant une classe abstraite, c'est un InputStreamReader qu'on utilise. On construit donc en utilisant un InputStream in un objet InputStreamReader inSR=new InputStreamReader(in).
Enfin pour lire des lignes de texte, on utilise comme Reader un BufferedReader associé à l'InputStreamReader. La classe BufferedReader fournit la méthode readLine() qui renvoie un String. Lorsqu'il n'y a plus de chaînes à lire, cette méthode renvoie null.
On utilise System.in.
BufferedReader br=new BufferedReader( new InputStreamReader(System.in));
On a associé le BufferedReader nommé in à l'InputStreamReader associé à l'InputStream in de la classe System pour gérer l'entrée clavier.
Ainsi :
String S=br.readLine();
permet de récupérer une chaîne entrée sur la console.
On construit comme InputStream un dérivé de type FileInputStream en donnant le nom de fichier :
FileInputStream fin=new FileInputStream(nomfichier); BufferedReader br= new BufferedReader(new InputStreamReader(fin));
On obtient l'InputStream avec la méthode openStream() d'un objet URL.
URL source=new URL(nomfichier); BufferedReader br=new BufferedReader( new InputStreamReader(source.openStream()));