Résumé Fichiers

Lecture

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.

Hiérarchie :

· 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 obtenir un InputStream

Fichiers texte

Pour un fichier texte, on utilise ensuite un objet Reader pour filtrer les octets reçus et les traduire en caractères.

Hiérarchie

· 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.

Exemples

Pour lire à partir de la console DOS

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.

Pour lire un fichier texte local

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));

Pour lire un fichier distant associé à une URL

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()));



Retour au menu