Entr´ees - sorties CollectionsCCI - APIs JavaE.Coqueryemmanuel.coquery@liris.cnrs.frEntr´ees - sorties CollectionsRessourcesLienshttp ://java.sun.com/j2se/1.5.0/docs/api/index.htmlhttp ://java.sun.com/docs/books/tutorial/LivresJava in a nutshellJava par la pratiqueEntr´ees - sorties CollectionsOutline1 Entr´ees - sorties2 CollectionsEntr´ees - sorties CollectionsE/S JavaPackage des entr´ees/sorties : java.io.Classes abstraites pour repr´esenter les flux :Deux cat´egories :Pour les flux de caract`eres (donn´ees textuelles) :Reader (lecture)int read() renvoie -1 si la fin du flux est atteinteWriter (´ecriture)void append(char) void write(int)Pour les flux de bytes (donn´ees binaires) :InputStream (lecture)int read() renvoie -1 si la fin du flux est atteinteOutputStream (´ecriture)void write(int) il faut passer un byte en argumentCes m´ethodes peuvent lever des java.io.IOExceptionEntr´ees - sorties CollectionsExemple recopie de fluxReader reader = ...Writer writer = ...int lu;try {do {lu = reader.read();if (lu != -1)writer.write((char)lu);} while (lu != -1);writer.flush();reader.close();writer.close();} catch (IOException e) {System.err.println(e);}Entr´ees - sorties CollectionsFichiersSous-classes des classes abstraites d’E/S pour les fichiers :FileReader, FileWriter,FileInputStream, FileOuputStreamLes constructeur prennent en argument une String contenantle nom du fichier.Dans l’exemple pr´ec´edent :Reader reader = new ...
Packagedesentre´es/sorties: java.io . Classesabstraitespourrepr´esenterlesflux: Deuxcat´egories: Pourlesfluxdecaract`eres(donne´estextuelles): Reader (lecture) int read() renvoie -1 si la fin du flux est atteinte Writer (e´criture) void append(char) void write(int) Pourlesfluxdebytes(donne´esbinaires): InputStream (lecture) int read() renvoie -1 si la fin du flux est atteinte OutputStream (´ecriture) void write(int) il faut passer un byte en argument Cesme´thodespeuventleverdes java.io.IOException
elctions
nEtre´es-ostrise
Exemple recopie de flux
Reader reader = ... Writer writer = ... int lu;
try {
do { lu = reader.read(); if (lu != -1) writer.write((char)lu); } while (lu != -1);
Sous-classes des classes abstraites d’E/S pour les fichiers : FileReader , FileWriter , FileInputStream , FileOuputStream Les constructeur prennent en argument une String contenant le nom du fichier. Dansl’exemplepr´ecedent: ´ Reader reader = new FileReader("fichier1.txt") ; Writer writer = new FileWriter("fichier2.txt") ; Classe File : manipulation de fichiers Re´pertoireparents,explorationder´epertoires Suppression, renomage Gestion des permissions
ollections
nErte´es-sortise
Entre´es/Sorties´evolu´ees
Col
Syste`mede“tuyaux”emboˆıte´s: Utilisationd’unReader(InputStream)commeentr´eepourun autre Reader (InputStream) Utilisation d’un Writer (OutputStream) comme sortie pour un autre Writer (OutputStream) Transformation de Stream vers Reader/Writer : InputStream is = ... Reader r = new InputStreamReader(is) ; OutputStream os = ... Writer w = new OutputStreamWriter(os) ;