1.2 Java.io Java / Socket, I/O, Thread
1.2 Java.io
Le package java.io contient un ensemble de classes, d’interfaces et de classes
d’exception permettant de r´ealiser des entr´ees/sorties. Une modification impor-
tante a ´et´e apport´ee `a ce package dans la version 1.1 de Java (celle que nous
utilisons). Un sous-arbre suppl´ementaire de classes a ´et´e ajout´e afin de g´erer
les entr´ees/sorties de type caract`ere (sur 16 bits). L’autre sous-arbre (d´evelopp´e
pour la 1.0) est toujours disponible et permet de g´erer les entr´ees/sorties pour
des octets (sur 8 bits).
La figure 2 est un sous-ensemble du package java.io r´eduit `a quelques classes
d’entr´ees (le sous-arbre des classes de sorties se d´eduit facilement `a partir de
celui des classes d’entr´ees).
BufferedInputStream
InputStream
FilterInputStream
Object
Classes Reader Classes InputStream
FilterReader
Reader
BufferedReader InputStreamReader
LineNumberReader DataInputStream
FileInputStream
Fig. 2 – Sous-ensemble de java.io
1.2.1 Flˆots d’octets
Les flˆots d’octets sont manipul´es par les classes se terminant par Stream.
Il est possible de chaˆıner plusieurs objets FilterInputStream pour lire des
donn´ees. Par exemple, la figure 3 repr´esente un chaˆınage pour lire des donn´ees
d’un fichier. Le premier objet permet d’acc´eder au fichier ; le second optimise les
acc`es en bufferisant les donn´ees, le troisi`eme facilite l’interpr´etation des donn´ees
par l’application en offrant des m´ethodes pour lire des types de base Java (Float,
Double, etc.).
Lors de la constitution d’un chaˆınage, le premier objet (celui qui acc`ede `a
la source) doit ˆetre un InputStream (par exemple, un FileInputStream dans
le cas de notre exemple) ; les suivants doivent ˆetre des FilterInputStream (un
BufferedInputStream et un DataInputStream dans notre exemple).
Le code java correspondant `a l’´etablissement du chaˆınage de la figure 3 est
le suivant :
FileInputStream fis = new FileInputStream ("un_fichier");
T´el´ecom Bretagne D´epartement RSM