Les entrées/sorties en Java ont été conçues de façon modulaire pour
permettre la manipulation de flots au sens large (fichier, socket, port).
De ce fait, il y a plusieurs classes, qu'il faut souvent combiner
selon le point de départ et selon l'objectif visé. La figure ci-dessous
résume les classes présentées et les passerelles possibles.