Les flux d`entrée/sortie

publicité
'
Structures en Java
MD2
Les flux d’entrée/sortie (i)
$
Principe —les flux sont utilisés par le programme pour échanger des
informations avec l’environnement.
Entrée/Sortie —deux types de flux
• les flux d’entrée servent à recevoir des informations provenant de
sources de l’environnement (fichiers, clavier, etc.)
• les flux de sortie servent à envoyer des informations vers des
destinations de l’environnement (fichiers, écran, etc.)
Flux de caractères/d’octets —le type des données échangées avec
l’environnement peut être soit des caractères, soit des octets.
⇒ en Java un paquetage fournit de multiples classes pour gérer les flux:
java.io
&
Univ. Paris Dauphine
'
Structures en Java
1
MD2
Les flux d’entrée/sortie (ii)
%
$
Pour les flux de caractères
• classe abstraite Reader
• classe abstraite Writer
Pour les flux d’octets
• classe abstraite InputStream
• classe abstraite OutputStream
⇒ de multiples classes héritent de ces classes pour traiter différents types
de flux
⇒ les flux sont automatiquement ouverts lors de leur créations, ils peuvent
ensuite être fermés explicitement (close())
&
Univ. Paris Dauphine
2
%
'
Structures en Java
MD2
Les flux d’entrée/sortie (iii)
$
Flux bufferisé —normalement, l’écriture ou la lecture s’effectuent
caractère par caractère (ou octet par octet). Si l’on souhaite que l’échange
s’effectue par “paquets” (bien plus efficace), il faut employer un flux
bufferisé.
• entrée classes BufferedReader/BufferedInputStream
• sortie classes BufferedWriter/BufferedOutputStream
⇒ la lecture bufferisée permet d’utiliser le readLine()!
Note: pour utiliser println(), il faut que le flux soit un
PrintWriter/PrintStream
&
Univ. Paris Dauphine
'
Structures en Java
3
MD2
Les flux prédéfinis in et out
%
$
• System.in est un InputStream associé au clavier (ou à l’entrée
standard)
• System.out est un PrintStream associé à l’écran (ou à la sortie
standard)
&
Univ. Paris Dauphine
4
%
'
Structures en Java
MD2
Flux et fichiers
$
Opérations de base sur les fichiers
• création, ouverture en écriture, écriture, ouverture en lecture, lecture,
suppression, changement de nom...
En Java...
• on peut associer explicitement une variable qui fait référence au fichier
physique
File f = new File(“monfichier.txt”)
• méthodes exists(), length(),...
• ouverture en lecture/écriture d’un fichier: flux de types
FileReader/FileWriter,
FileInputStream/FileOutputStream
• méthodes read(), write(),...
&
Univ. Paris Dauphine
5
%
Téléchargement