Comment fonctionnent les API avancée Java I/O?

Les API principales que vous devez connaître sont listées dans le Tableau 14.14. Nous savons que certaines classes semblent similaires. Vous devez connaître ce tableau vraiment bien.

TABLEAU 14.14 API Principales

ClasseObjectif
FileReprésentation I/O de l’emplacement dans le système de fichiers
FilesMéthodes utilitaires pour travailler avec Path
PathReprésentation NIO.2 de l’emplacement dans le système de fichiers
PathsContient des méthodes d’usine pour obtenir Path
URIIdentifiant de ressource uniforme pour fichiers, URLs, etc.
FileSystemReprésentation NIO.2 du système de fichiers
FileSystemsContient des méthodes d’usine pour obtenir FileSystem
InputStreamSuperclasse pour lire des fichiers basés sur des octets
OutputStreamSuperclasse pour écrire des fichiers basés sur des octets
ReaderSuperclasse pour lire des fichiers basés sur des caractères
WriterSuperclasse pour écrire des fichiers basés sur des caractères

De plus, la Figure 14.8 montre toutes les classes I/O stream que vous devriez connaître, à l’exception des flux de filtre. FilterInputStream et FilterOutputStream sont des superclasses de haut niveau qui filtrent ou transforment des données. Elles sont rarement utilisées directement.

FIGURE 14.8 Diagramme des classes I/O stream

Les InputStreamReader et OutputStreamWriter sont incroyablement pratiques et sont également uniques en ce qu’ils sont les seules classes I/O stream à avoir à la fois InputStream/OutputStream et Reader/Writer dans leur nom.

Hiérarchie des classes I/O stream

Le diagramme montre la hiérarchie suivante :

Classes d’entrée basées sur les octets :

  • InputStream (classe abstraite)
    • FileInputStream (classe de bas niveau)
    • FilterInputStream
      • BufferedInputStream
    • ObjectInputStream

Classes d’entrée basées sur les caractères :

  • Reader (classe abstraite)
    • BufferedReader
    • InputStreamReader
      • FileReader (classe de bas niveau)

Classes de sortie basées sur les octets :

  • OutputStream (classe abstraite)
    • FileOutputStream (classe de bas niveau)
    • FilterOutputStream
      • BufferedOutputStream
      • PrintStream
    • ObjectOutputStream

Classes de sortie basées sur les caractères :

  • Writer (classe abstraite)
    • BufferedWriter
    • OutputStreamWriter
      • FileWriter (classe de bas niveau)
    • PrintWriter