SlideShare une entreprise Scribd logo
1  sur  24
Télécharger pour lire hors ligne
JAVA
Les flux d’entrée/sortie
Introduction
1. Une entrée/sortie en Java consiste en un échange de données entre le
programme et :
a. une autre source
b. la mémoire
c. un fichier
d. le programme lui-même…
2. Java emploie un stream (flux) qui joue le rôle de médiateur entre la
source des données et sa destination.
3. Java met à notre disposition toute un ensemble de class pour
communiquer de la sorte.
4. Toute opération sur les entrées/sorties doit suivre le schéma suivant :
a. Ouverture
b. Lecture
c. Fermeture du flux.
Introduction
File
Un objet file représente: un fichier ou un dossier
● Constructeur: File(String nomFichierOuDossier)
● getAbsolutePath()
● getName()
● exists()
● isDirectory()
● isFile()
● listFiles()
● mkdir()
● delete()
● ….
File
FileInputStream & FileOutputStream
● Heritent de InputStream et OutputStream
○ InputStream -------> pour la lecture
○ OutputStream ------> Pour l'écriture
● FileInputStream -----> Lire dans un fichier
○ FileInputStream(File f)
○ Int read(char[] buf)
○ ….
● FileOutputStream -----> Écrire dans un fichier
○ FileOutputStream(File f)
○ Int write(char[] buf)
○ …..
Ex: écrire un programme java pour dupliquer un fichier
FileInputStream & FileOutputStream
FileInputStream & FileOutputStream
Ex:
● Modifier le programme précédent pour afficher au consol le contenu du
fichier suivant:
“Les données vont tout d'abord remplir le tampon, et dès que celui-ci est
plein, le programme accède aux données. “
● Y a t-il des remarque?
FileInputStream & FileOutputStream
FileInputStream & FileOutputStream
BufferedInputStream & BufferedOutputStream
● Elle se comportent comme les deux précédentes mais avec plus
performences
● Constructeur:
○ BufferedInputStream(InputStream in)
○ BufferedOutputStream(OutputStream out)
● Methodes
○ read(byte[] buf)
○ write(byte[] buf)
Ex: Refaire l’exercice de copie de fichier et compare les temps d'exécution à
l’aide de la méthode statique currentTimeMillis() de la classe System.
BufferedInputStream & BufferedOutputStream
DataInputStream & DataOutputStream
● Offrent la possibilité de lire (écrire) directement des types primitifs
(double,char,int)
● Constructeur:
○ DataInputStream(BufferedInputStream in)
○ DataOutputStream(BufferedOutputStream out)
● Methodes
○ readInt(), readDouble(), readFloat() ...
○ writeInt(int), writeDouble(double), writeFloat(float)...
Ex: Remplissez un nouveau fichier “data.txt” avec des données de types
primitifs on utilisant DataOutputStream puis lisez ce fichier à l’aide d’un
DataOutputStream et affichez le résultat dans la consol.
DataInputStream & DataOutputStream
ObjectInputStream & ObjectOutputStream (sérialisation)
● Ces classes servent à sauvegarder (récupérer) des objet dans des fichiers
● Ces objets doivent êtres des instance de classes qui implementent
l’interface Serializable
● Constructeur:
○ ObjectInputStream(FileInputStream f)
○ ObjectInputStream(FileOutputStream f)
● Methodes
○ readObject()
○ writeObject(Serializable o)
ObjectInputStream & ObjectOutputStream (sérialisation)
Exercice:
Sauvegarder quelque objets Game dans un fichier “game.txt” puis récupérer
les pour les afficher dans la console.
ObjectInputStream & ObjectOutputStream (sérialisation)
ObjectInputStream & ObjectOutputStream
Si une classe Serializable A un attribut de classe B alors:
● La classe B est aussi serializable
● Declarer cet atribut comme transient
○ Dans ce cas cet attribut ne sera pas sauvegardé
○ On risque d’avoir un NullPointerException après la désérialisation
Exercice:
FileReader & FileWriter
Au contraire des classe précédentes ces classes permettent de lire (écrire) des
fichiers texte.
Java.nio (new io)
● Les classe de ce package améliore les performances sur le traitement des
fichiers, du réseau et des buffers.
● elles permet de lire(écrire) les données d'une façon différente:
○ Les classe de package java.io traitent les données par octets.
○ Ceux de package java.nio les traitent par blocs de données.
● Deux types classe essentielles:
○ channels : FileChannel; Selector; Pipe ...
○ Buffers : IntBuffer; CharBuffer; ShortBuffer; ByteBuffer; DoubleBuffer; FloatBuffer;
LongBuffer
FileChannel
FileChannel
Cette classe offre un buffer par type primitif pour la lecture sur le channel
● IntBuffer;
● CharBuffer;
● ShortBuffer;
● ByteBuffer;
● DoubleBuffer;
● FloatBuffer;
● LongBuffer.
FileChannel
Exercice
Comparer les performances de cette méthode / BufferedInputStream
FileChannel

Contenu connexe

Similaire à JAVA-IO.pdf

Manipulation des fichiers en C.pptx
Manipulation des fichiers en C.pptxManipulation des fichiers en C.pptx
Manipulation des fichiers en C.pptxolfaharrabi2
 
Exploration et visualisation de fichiers XML avec BaseX
Exploration et visualisation de fichiers XML avec BaseXExploration et visualisation de fichiers XML avec BaseX
Exploration et visualisation de fichiers XML avec BaseXEmmanuelle Morlock
 
log file sous Netbeans et J2ME
log file sous Netbeans et J2MElog file sous Netbeans et J2ME
log file sous Netbeans et J2MEZied
 
Les_fichiers_sousPython..TXT et JSON et csv
Les_fichiers_sousPython..TXT et JSON et csvLes_fichiers_sousPython..TXT et JSON et csv
Les_fichiers_sousPython..TXT et JSON et csvnadiamfr1
 
Cours C Avancé chapitre 2 et chapitre.pdf
Cours C Avancé  chapitre 2 et chapitre.pdfCours C Avancé  chapitre 2 et chapitre.pdf
Cours C Avancé chapitre 2 et chapitre.pdfc79024186
 
Pres_ java_Fichier_Suite_cour sur les fichier en java.pdf
Pres_ java_Fichier_Suite_cour sur les fichier en java.pdfPres_ java_Fichier_Suite_cour sur les fichier en java.pdf
Pres_ java_Fichier_Suite_cour sur les fichier en java.pdfHERGALYOUSSEF
 
"Input/Ouput, 16 ans après" à Devoxx France 2012
"Input/Ouput, 16 ans après" à Devoxx France 2012"Input/Ouput, 16 ans après" à Devoxx France 2012
"Input/Ouput, 16 ans après" à Devoxx France 2012Jean-Michel Doudoux
 
Les entrées sorties
Les entrées sortiesLes entrées sorties
Les entrées sortiesJihed Kaouech
 
2014 09 12_atelier-humanites-numerique-hisoma-seance-1-oxygen
2014 09 12_atelier-humanites-numerique-hisoma-seance-1-oxygen2014 09 12_atelier-humanites-numerique-hisoma-seance-1-oxygen
2014 09 12_atelier-humanites-numerique-hisoma-seance-1-oxygenEmmanuelle Morlock
 
Manipulation_des_fichiers_en_C.ppsx
Manipulation_des_fichiers_en_C.ppsxManipulation_des_fichiers_en_C.ppsx
Manipulation_des_fichiers_en_C.ppsxYallaHabibi5
 
Cours java smi 2007 2008
Cours java smi 2007 2008Cours java smi 2007 2008
Cours java smi 2007 2008Khalil Lechheb
 
Cours java smi 2007 2008
Cours java smi 2007 2008Cours java smi 2007 2008
Cours java smi 2007 2008Khalil Lechheb
 
Cpp2 : classes et objets
Cpp2 : classes et objetsCpp2 : classes et objets
Cpp2 : classes et objetsAbdoulaye Dieng
 
Cours de C++, en français, 2002 - Cours 3.4
Cours de C++, en français, 2002 - Cours 3.4Cours de C++, en français, 2002 - Cours 3.4
Cours de C++, en français, 2002 - Cours 3.4Laurent BUNIET
 

Similaire à JAVA-IO.pdf (20)

Introduction à Python
Introduction à PythonIntroduction à Python
Introduction à Python
 
Manipulation des fichiers en C.pptx
Manipulation des fichiers en C.pptxManipulation des fichiers en C.pptx
Manipulation des fichiers en C.pptx
 
Exploration et visualisation de fichiers XML avec BaseX
Exploration et visualisation de fichiers XML avec BaseXExploration et visualisation de fichiers XML avec BaseX
Exploration et visualisation de fichiers XML avec BaseX
 
log file sous Netbeans et J2ME
log file sous Netbeans et J2MElog file sous Netbeans et J2ME
log file sous Netbeans et J2ME
 
Theme 8
Theme 8Theme 8
Theme 8
 
Les_fichiers_sousPython..TXT et JSON et csv
Les_fichiers_sousPython..TXT et JSON et csvLes_fichiers_sousPython..TXT et JSON et csv
Les_fichiers_sousPython..TXT et JSON et csv
 
Cours C Avancé chapitre 2 et chapitre.pdf
Cours C Avancé  chapitre 2 et chapitre.pdfCours C Avancé  chapitre 2 et chapitre.pdf
Cours C Avancé chapitre 2 et chapitre.pdf
 
Pres_ java_Fichier_Suite_cour sur les fichier en java.pdf
Pres_ java_Fichier_Suite_cour sur les fichier en java.pdfPres_ java_Fichier_Suite_cour sur les fichier en java.pdf
Pres_ java_Fichier_Suite_cour sur les fichier en java.pdf
 
"Input/Ouput, 16 ans après" à Devoxx France 2012
"Input/Ouput, 16 ans après" à Devoxx France 2012"Input/Ouput, 16 ans après" à Devoxx France 2012
"Input/Ouput, 16 ans après" à Devoxx France 2012
 
Les entrées sorties
Les entrées sortiesLes entrées sorties
Les entrées sorties
 
Rapport Projet Module Complexité
Rapport Projet Module ComplexitéRapport Projet Module Complexité
Rapport Projet Module Complexité
 
2014 09 12_atelier-humanites-numerique-hisoma-seance-1-oxygen
2014 09 12_atelier-humanites-numerique-hisoma-seance-1-oxygen2014 09 12_atelier-humanites-numerique-hisoma-seance-1-oxygen
2014 09 12_atelier-humanites-numerique-hisoma-seance-1-oxygen
 
Langage C++
Langage C++Langage C++
Langage C++
 
NIO 2
NIO 2NIO 2
NIO 2
 
poo.pdf
poo.pdfpoo.pdf
poo.pdf
 
Manipulation_des_fichiers_en_C.ppsx
Manipulation_des_fichiers_en_C.ppsxManipulation_des_fichiers_en_C.ppsx
Manipulation_des_fichiers_en_C.ppsx
 
Cours java smi 2007 2008
Cours java smi 2007 2008Cours java smi 2007 2008
Cours java smi 2007 2008
 
Cours java smi 2007 2008
Cours java smi 2007 2008Cours java smi 2007 2008
Cours java smi 2007 2008
 
Cpp2 : classes et objets
Cpp2 : classes et objetsCpp2 : classes et objets
Cpp2 : classes et objets
 
Cours de C++, en français, 2002 - Cours 3.4
Cours de C++, en français, 2002 - Cours 3.4Cours de C++, en français, 2002 - Cours 3.4
Cours de C++, en français, 2002 - Cours 3.4
 

Dernier

JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...Institut de l'Elevage - Idele
 
conception d'un batiment r+4 comparative de defferente ariante de plancher
conception d'un  batiment  r+4 comparative de defferente ariante de plancherconception d'un  batiment  r+4 comparative de defferente ariante de plancher
conception d'un batiment r+4 comparative de defferente ariante de planchermansouriahlam
 
JTC 2024 La relance de la filière de la viande de chevreau.pdf
JTC 2024 La relance de la filière de la viande de chevreau.pdfJTC 2024 La relance de la filière de la viande de chevreau.pdf
JTC 2024 La relance de la filière de la viande de chevreau.pdfInstitut de l'Elevage - Idele
 
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdfJTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdfInstitut de l'Elevage - Idele
 
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...Institut de l'Elevage - Idele
 
GAL2024 - Décarbonation du secteur laitier : la filière s'engage
GAL2024 - Décarbonation du secteur laitier : la filière s'engageGAL2024 - Décarbonation du secteur laitier : la filière s'engage
GAL2024 - Décarbonation du secteur laitier : la filière s'engageInstitut de l'Elevage - Idele
 
GAL2024 - L'élevage laitier cultive la biodiversité
GAL2024 - L'élevage laitier cultive la biodiversitéGAL2024 - L'élevage laitier cultive la biodiversité
GAL2024 - L'élevage laitier cultive la biodiversitéInstitut de l'Elevage - Idele
 
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...Institut de l'Elevage - Idele
 
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...GAL2024 - Méthane 2030 : une démarche collective française à destination de t...
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...Institut de l'Elevage - Idele
 
WBS OBS RACI_2020-etunhjjlllllll pdf.pdf
WBS OBS RACI_2020-etunhjjlllllll pdf.pdfWBS OBS RACI_2020-etunhjjlllllll pdf.pdf
WBS OBS RACI_2020-etunhjjlllllll pdf.pdfSophie569778
 
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenus
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenusGAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenus
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenusInstitut de l'Elevage - Idele
 
JTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdfJTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdfInstitut de l'Elevage - Idele
 
firefly algoriyhm sac a dos step by step .pdf
firefly algoriyhm sac a dos step by step .pdffirefly algoriyhm sac a dos step by step .pdf
firefly algoriyhm sac a dos step by step .pdffirstjob4
 
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...Institut de l'Elevage - Idele
 
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...Institut de l'Elevage - Idele
 
comprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestioncomprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestionyakinekaidouchi1
 
GAL2024 - Changements climatiques et maladies émergentes
GAL2024 - Changements climatiques et maladies émergentesGAL2024 - Changements climatiques et maladies émergentes
GAL2024 - Changements climatiques et maladies émergentesInstitut de l'Elevage - Idele
 
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024Ville de Châteauguay
 

Dernier (20)

JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
 
conception d'un batiment r+4 comparative de defferente ariante de plancher
conception d'un  batiment  r+4 comparative de defferente ariante de plancherconception d'un  batiment  r+4 comparative de defferente ariante de plancher
conception d'un batiment r+4 comparative de defferente ariante de plancher
 
JTC 2024 La relance de la filière de la viande de chevreau.pdf
JTC 2024 La relance de la filière de la viande de chevreau.pdfJTC 2024 La relance de la filière de la viande de chevreau.pdf
JTC 2024 La relance de la filière de la viande de chevreau.pdf
 
JTC 2024 - DeCremoux_Anomalies_génétiques.pdf
JTC 2024 - DeCremoux_Anomalies_génétiques.pdfJTC 2024 - DeCremoux_Anomalies_génétiques.pdf
JTC 2024 - DeCremoux_Anomalies_génétiques.pdf
 
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdfJTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
 
JTC 2024 Bâtiment et Photovoltaïque.pdf
JTC 2024  Bâtiment et Photovoltaïque.pdfJTC 2024  Bâtiment et Photovoltaïque.pdf
JTC 2024 Bâtiment et Photovoltaïque.pdf
 
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
 
GAL2024 - Décarbonation du secteur laitier : la filière s'engage
GAL2024 - Décarbonation du secteur laitier : la filière s'engageGAL2024 - Décarbonation du secteur laitier : la filière s'engage
GAL2024 - Décarbonation du secteur laitier : la filière s'engage
 
GAL2024 - L'élevage laitier cultive la biodiversité
GAL2024 - L'élevage laitier cultive la biodiversitéGAL2024 - L'élevage laitier cultive la biodiversité
GAL2024 - L'élevage laitier cultive la biodiversité
 
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
 
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...GAL2024 - Méthane 2030 : une démarche collective française à destination de t...
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...
 
WBS OBS RACI_2020-etunhjjlllllll pdf.pdf
WBS OBS RACI_2020-etunhjjlllllll pdf.pdfWBS OBS RACI_2020-etunhjjlllllll pdf.pdf
WBS OBS RACI_2020-etunhjjlllllll pdf.pdf
 
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenus
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenusGAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenus
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenus
 
JTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdfJTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdf
 
firefly algoriyhm sac a dos step by step .pdf
firefly algoriyhm sac a dos step by step .pdffirefly algoriyhm sac a dos step by step .pdf
firefly algoriyhm sac a dos step by step .pdf
 
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
 
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
 
comprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestioncomprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestion
 
GAL2024 - Changements climatiques et maladies émergentes
GAL2024 - Changements climatiques et maladies émergentesGAL2024 - Changements climatiques et maladies émergentes
GAL2024 - Changements climatiques et maladies émergentes
 
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
 

JAVA-IO.pdf

  • 2. Introduction 1. Une entrée/sortie en Java consiste en un échange de données entre le programme et : a. une autre source b. la mémoire c. un fichier d. le programme lui-même… 2. Java emploie un stream (flux) qui joue le rôle de médiateur entre la source des données et sa destination. 3. Java met à notre disposition toute un ensemble de class pour communiquer de la sorte. 4. Toute opération sur les entrées/sorties doit suivre le schéma suivant : a. Ouverture b. Lecture c. Fermeture du flux.
  • 4. File Un objet file représente: un fichier ou un dossier ● Constructeur: File(String nomFichierOuDossier) ● getAbsolutePath() ● getName() ● exists() ● isDirectory() ● isFile() ● listFiles() ● mkdir() ● delete() ● ….
  • 6. FileInputStream & FileOutputStream ● Heritent de InputStream et OutputStream ○ InputStream -------> pour la lecture ○ OutputStream ------> Pour l'écriture ● FileInputStream -----> Lire dans un fichier ○ FileInputStream(File f) ○ Int read(char[] buf) ○ …. ● FileOutputStream -----> Écrire dans un fichier ○ FileOutputStream(File f) ○ Int write(char[] buf) ○ ….. Ex: écrire un programme java pour dupliquer un fichier
  • 8. FileInputStream & FileOutputStream Ex: ● Modifier le programme précédent pour afficher au consol le contenu du fichier suivant: “Les données vont tout d'abord remplir le tampon, et dès que celui-ci est plein, le programme accède aux données. “ ● Y a t-il des remarque?
  • 11. BufferedInputStream & BufferedOutputStream ● Elle se comportent comme les deux précédentes mais avec plus performences ● Constructeur: ○ BufferedInputStream(InputStream in) ○ BufferedOutputStream(OutputStream out) ● Methodes ○ read(byte[] buf) ○ write(byte[] buf) Ex: Refaire l’exercice de copie de fichier et compare les temps d'exécution à l’aide de la méthode statique currentTimeMillis() de la classe System.
  • 13. DataInputStream & DataOutputStream ● Offrent la possibilité de lire (écrire) directement des types primitifs (double,char,int) ● Constructeur: ○ DataInputStream(BufferedInputStream in) ○ DataOutputStream(BufferedOutputStream out) ● Methodes ○ readInt(), readDouble(), readFloat() ... ○ writeInt(int), writeDouble(double), writeFloat(float)... Ex: Remplissez un nouveau fichier “data.txt” avec des données de types primitifs on utilisant DataOutputStream puis lisez ce fichier à l’aide d’un DataOutputStream et affichez le résultat dans la consol.
  • 15. ObjectInputStream & ObjectOutputStream (sérialisation) ● Ces classes servent à sauvegarder (récupérer) des objet dans des fichiers ● Ces objets doivent êtres des instance de classes qui implementent l’interface Serializable ● Constructeur: ○ ObjectInputStream(FileInputStream f) ○ ObjectInputStream(FileOutputStream f) ● Methodes ○ readObject() ○ writeObject(Serializable o)
  • 16. ObjectInputStream & ObjectOutputStream (sérialisation) Exercice: Sauvegarder quelque objets Game dans un fichier “game.txt” puis récupérer les pour les afficher dans la console.
  • 18. ObjectInputStream & ObjectOutputStream Si une classe Serializable A un attribut de classe B alors: ● La classe B est aussi serializable ● Declarer cet atribut comme transient ○ Dans ce cas cet attribut ne sera pas sauvegardé ○ On risque d’avoir un NullPointerException après la désérialisation Exercice:
  • 19. FileReader & FileWriter Au contraire des classe précédentes ces classes permettent de lire (écrire) des fichiers texte.
  • 20. Java.nio (new io) ● Les classe de ce package améliore les performances sur le traitement des fichiers, du réseau et des buffers. ● elles permet de lire(écrire) les données d'une façon différente: ○ Les classe de package java.io traitent les données par octets. ○ Ceux de package java.nio les traitent par blocs de données. ● Deux types classe essentielles: ○ channels : FileChannel; Selector; Pipe ... ○ Buffers : IntBuffer; CharBuffer; ShortBuffer; ByteBuffer; DoubleBuffer; FloatBuffer; LongBuffer
  • 22. FileChannel Cette classe offre un buffer par type primitif pour la lecture sur le channel ● IntBuffer; ● CharBuffer; ● ShortBuffer; ● ByteBuffer; ● DoubleBuffer; ● FloatBuffer; ● LongBuffer.
  • 23. FileChannel Exercice Comparer les performances de cette méthode / BufferedInputStream