Académique Documents
Professionnel Documents
Culture Documents
Olivier Goutet
o.goutet@openium.fr
25 janvier 2013
1 / 26
Plan
Entrées-Sorties
Fichiers
2 / 26
Plan
Entrées-Sorties
Streams
Readers
Enveloppes
I/O buerisés
Fichiers
3 / 26
I/O
• Entrées et sorties
◦ Fichier
◦ Réseau
• Java fournit tout ce qu'il faut nativement
• Stream
◦ Flot de données
◦ Uni ou bi-directionnel
◦ InputStream, OutputStream, Reader, ...
4 / 26
Package java.io
Learning Java 2nd edition O'Reilly Pat Neiemeyer & Jonathan Knudsen
5 / 26
Streams
• InputStream / OutputStream
◦ Classes abstraites
◦ Dénissent les fonctions de base
◦ Base de tous les streams
Learning Java 2nd edition O'Reilly Pat Neiemeyer & Jonathan Knudsen
7 / 26
Streams
• Reader / Writer
◦ Classes abstraites
◦ Dédiées aux séquences de caractères (support de unicode)
◦ Base des streams de caractères
• InputStreamReader / InputStreamWriter
◦ Pont entre les streams et les readers
8 / 26
Streams
• DataInputStream / DataOutputStream
◦ Types de base (String, int...)
• ObjectInputStream / ObjectOutputStream
◦ Objets sérialisés
• Buered...
◦ Streams et Readers
◦ Ajout d'un système de tampon
◦ Amélioration des performances
• FileInputStream / FileOutputStream
FileReader / FileWriter
◦ Lecture et écriture dans le système de chier
• ...
9 / 26
Streams standards
• in / out / err
10 / 26
Readers
• InputStream / OutputStream
◦ Byte = 1 octet
◦ Unicode ?
• Readers
◦ Gèrent l'unicode
◦ InputStreamReader et InputStreamWriter pour faire les
conversions avec les Stream
◦ Fonctionne quel que soit la langue
11 / 26
Readers Exemple
try {
InputStreamReader convertisseur = new InputStreamReader ( System . in );
BufferedReader in = new BufferedReader ( convertisseur );
String texte = in . readLine ();
} catch ( IOException e ){
System . out . println ( " IOException message :" + e. gerMessage ())
e. printStackTrace ();
}
12 / 26
Enveloppes
14 / 26
I/O buerisés
• Buered...
15 / 26
I/O buerisés
16 / 26
Tubes (pipes)
17 / 26
Tubes (pipes)
• PipedReader / PipedWriter
• Lecture bloquante si plus de données
18 / 26
Pour aller plus loin
• PrintWriter
• StringReader
• ...
• Compression de données
◦ GZIPInputStream / GZIPOutputStream
• NIO
◦ E/S asynchrones
◦ Performances améliorées
◦ Fichiers mappés en mémoire
◦ ...
19 / 26
Plan
Entrées-Sorties
Fichiers
20 / 26
Fichiers
21 / 26
Classe File
// Chemin absolu
File fooFile = new File ( " / tmp / foo . txt " );
File barDir = new File ( " / tmp / bar " );
// Chemin relatif
File f = new File ( " foo " );
// equivalent pwd
System . getProperty ( " user . dir " );
// Concatenation
File fooFile = new File ( " / tmp " , " foo . txt " );
// Agregation
File tmpDir = new File ( " / tmp " );
File fooFile = new File ( tmpDir , " foo . txt " );
22 / 26
Classe File
23 / 26
Classe File
24 / 26
Classe File
25 / 26
Classe File
• Autres méthodes
◦ lastModified()
◦ setLastModified()
◦ length()
◦ list()
◦ listFiles()
◦ mkdir()
◦ ...
26 / 26