| Flux de caractères en lecture |
Description du flux d'octets | Flux d'octets en lecture équivalent |
|---|---|---|
Reader |
classe abstraite | InputStream |
BufferedReader |
lecture d'un flux de caractères au travers d'un tampon |
BuffererdInputStream |
LineNumberReader |
traçage des numéros de lignes d'un BufferedReader |
LineNumberInputStream |
CharArrayReader |
tableau de caractères utilisable en flux de caractères en entrée |
ByteArrayInputStream |
InputStreamReader |
conversion d'un flux d'octets en flux de caractères |
|
FileReader |
conversion d'octets d'un fichier en flux de caractères |
FileInputStream |
PushBackReader |
annulation de lecture | PushBackInputStream |
PipedReader |
tube (connection à un PipedWriter) | PipedInputStream |
StringReader |
stream en lecture associé à une chaîne | StringBufferInputStream |
- Reader
est une classe abstraite orientée
vers la lecture de caractères dans un flux.
void close( ) :
méthode abstraite de fermeture du fluxint read( ) :
lecture de un caractèreint read(char[ ] buffer, int offset, int longueur) :
méthode abstraite correspondant à la lecture d'un nombre
donné de caractères et écriture à partir de la position
spécifiée dans le tableauvoid reset( ) :long skip(int n) : «saute» n caractères
- La classe BufferedReader
permet la lecture
d'un flot de caractères avec un mécanisme de tampon afin
d'améliorer les performances.
Elle est typiquement utilisée pour améliorer les performances
offertes par les méthodes spécifiques des classes
concrètes telles que
FileReader ou
InputStreamReaderqui
étendent la classe abstraite
reader.
C'est pourquoi elle possède un constructeur
BufferedReader(Reader in)
FILE par la fonction fdopen
afin d'utiliser les fonctions de la
bibliothèque standard plutôt que les fonctions de bas niveau
(appels système).
Elle possède par ailleurs une méthode
String readLine( )
permettant la lecture d'une ligne
FileReader
est adaptée à la lecture de fichiers de caractères.
FileReader(String nomDeFichier)
pour l'instanciation à partir d'un nom de fichier.
cat
--> cat CatFichier.java
import java.io.*;
class CatFichier {
public static void main (String[] arg) throws IOException{
if (arg.length == 0){
System.err.println("Erreur paramètres");
System.exit(1);
}
BufferedReader fichier = new BufferedReader(new FileReader(arg[0]));
String str;
str = fichier.readLine( );
while (str != null){
System.out.println(str);
str = fichier.readLine( );
}
}
}
--> java CatFichier
Erreur paramètres
--> cat tutu
cat: tutu: cannot open [No such file or directory]
--> java CatFichier tutu
F:\JAVA\FLUX>java CatFichier tutu
Exception in thread "main" java.io.FileNotFoundException: tutu
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:103)
at java.io.FileInputStream.<init>(FileInputStream.java:66)
at java.io.FileReader.<init>(FileReader.java:39)
at CatFichier.main(CatFichier.java:8)
--> cat toto
ABCDEFGHIJKLM
abcdefghijklmn
0123456789
--> java CatFichier toto
ABCDEFGHIJKLM
abcdefghijklmn
0123456789
-->
|
| Flux de caractères | Description | Flux d'octets équivalent |
|---|---|---|
Writer |
classe abstraite | OutputStream |
BufferedWriter |
BuffererdOutputStream |
|
|
|
|
CharArrayWriter |
ByteArrayOutputStream |
|
|
|
|
FileWriter |
conversion d'un flux de caractères dans un fichier | FileOutputStream |
|
|
|
PipedWriter |
PipedOutputStream |
|
StringWriter |
StringBufferOutputStream |
Writer est une classe abstraite orientée vers l'écriture de caractères dans un flux
(write et
close en sont les
méthodes abstraites)
toString