SlideShare uma empresa Scribd logo
1 de 13
Baixar para ler offline
Les fichiers
-suite-
Prog Java avancée 1
Nouveautés Java 7
Le try-with-resources : à partir de java SE 7
Exemple:
try ( FileReader lire= new FileReader("fich1.txt" ) ;
FileWriter ecrire= new FileWriter ("fich2.txt" ) ){
int car= lire.read() ;
while ( car != −1) {
ecrire.write ( car ) ;
car= r.read( ) ;
}
}
 Instructions d’initialisation des ressources séparées par des ‘;’
 La méthode close() est automatiquement appelée à la fin du bloc.
 Pas besoin du bloc finally …  moins du code
Prog Java avancée 2
Java 7 permet le traitement de plusieurs types d'exceptions, séparés par un
'pipe‘ (|).
try {
//…..
}
catch (ClassNotFoundException | IOException| IllegalAccessException e) {
System.err.println("Erreur: ", e);
}
Nouveautés Java 7
Prog Java avancée 3
Nouveautés Java 7
Java propose une nouvelle API (NIO.2) pour la gestion et l’accès au
système de fichier.
Quelques limites de la classe File de java.io:
 gestion des exceptions : impossibilité d’obtenir la moindre information
sur l’origine de quelques problèmes
 accès limité aux propriétés des fichiers (propriétaire, droits, …)
 absence de certaines fonctionnalités (copie et déplacement de fichier,
gestion des liens, …)
 La classe File est remplacée par une nouvelle classe Path (package
java.nio.file)
Prog Java avancée 4
Gestion des chemins
 Un chemin d’accès à une ressource fichier ou répertoire peut être
absolu ou relatif.
 À partir de java 7, l’interface java.nio.file.Path représente le chemin.
 Avantages de Path
 accès facile aux éléments d’un chemin;
 comparaison de chemins;
 possibilité d’être averti lorsque un fichier est modifié (surveillance).
 Quelques méthodes:
 equals, compareTo, startsWith et endsWith : comparaison
 normalize: remplacer « . » et « .. » dans les chemins
 toFile: créer un File depuis un Path
Prog Java avancée 5
Gestion des chemins
 La classe java.nio.file.Paths est souvent utilisée pour créer des
instances Path, à partir d'une URI ou d'une chaîne de caractères.
Exemples:
Path path1 = Paths.get("d:");
Path path2 = Paths.get(System.getProperty("user.home"));
Path path3 = Paths.get(System.getProperty("user.dir", "fichier.txt"));
 La classe java.nio.file.Files contient des méthodes statiques pour
manipuler des objets de type Path.
Prog Java avancée 6
Accès aux fichiers
La classe java.nio.file.Files contient des méthodes permettant:
 la manipulation des chemins
 création et suppression des fichiers et des dossiers
 copie et déplacement des fichiers et dossiers
 vérification et gestion des droits d’accès
 existence des fichiers
 création d’objets flots
 parcours d’arborescence
 méthodes simplifiées pour la lecture et l’écriture.
Prog Java avancée 7
Accès aux fichiers
Exemples:
Path homePath = Paths.get(System.getProperty("user.home"));
//avoir et afficher tous les fichiers du répertoire
try (DirectoryStream<Path> flot= Files.newDirectoryStream(homePath)) {
for (Path elem : flot)
System.out.println(elem);
}
//appliquer un filtre (pas tous les fichiers en utilisant la notation des Exp Reg)
try (DirectoryStream<Path> flot= Files.newDirectoryStream(homePath,
"*.{java,jsp,xml}"))
{
for (Path elem : flot)
System.out.println(elem); //ou System.out.println(fich.getFileName());
}
Prog Java avancée 8
Lecture d’un fichier
 lecture séquentielle du contenu d'un fichier: instancier FileReader ou
FileInputStream.
 Files fournit des méthodes pour simplifier …
Exemple:
Parcourir le contenu d'un fichier à l’aide de la méthode newBufferedReader.
Path pt= Paths.get("d:javasrcDemoFile.java");
try (BufferedReader br = Files.newBufferedReader(pt)) {
String ligne = null;
while ((ligne = br.readLine()) != null) {
System.out.println(ligne);
}
}
Prog Java avancée 9
Lecture d’un fichier
 Lecture des petits fichiers:
 Binaires: readAllBytes
 Textuels: readAllLines
Exemple:
Path pt= Paths.get("d:javasrcDemoFile.java");
List<String> lignes = Files.readAllLines(pt);
for (String elem : lignes) {
System.out.println(elem);
}
Prog Java avancée 10
Ecriture dans un fichier
 La classe Files offre des méthodes : newOutputStream,
newInputStream, newBufferedWriter, …
 Exemple:
Charset utf8 = Charset.forName("UTF-8");
//ou utiliser StandardCharsets.UTF_8
Path pt= Paths.get("d:fiche.txt");
String contenu= "Nom et prénom: Toto TitinÂge: 24nDiplôme: BACn";
try (BufferedWriter bw= Files.newBufferedWriter(pt,utf8,
StandardOpenOption.CREATE) ) {
bw.write(contenu);
}
Prog Java avancée 11
Afficher les répartitions
Exemple 1: afficher les partitions de sa machine
Iterable<Path> lecteurs = FileSystems.getDefault().getRootDirectories();
for (Path nom: lecteurs ) {
System.out.println(nom);
}
Prog Java avancée 12
Afficher les répartitions
Exemple 2: avec plus de détails
try{ FileSystem defaultFS = FileSystems.getDefault();
Iterable<Path> lecteurs = defaultFS.getRootDirectories();
for (Path lecteur : lecteurs ) {
System.out.println(lecteur);
FileStore fs= Files.getFileStore(lecteur);
long et=fs.getTotalSpace(), ed=fs.getUsableSpace() ;
System.out.printf("Taille (Go) : %.2fn", et/1073741824.0);
System.out.printf("Espace disponible (Go) : %.2fn", ed/1073741824.0);
System.out.println("___________________________");
}
}
catch(Exception e){ }
Prog Java avancée 13

Mais conteúdo relacionado

Semelhante a Pres_ java_Fichier_Suite_cour sur les fichier en java.pdf

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
 
Chapitre 1 introduction generale
Chapitre 1   introduction generaleChapitre 1   introduction generale
Chapitre 1 introduction generaleAmir Souissi
 
Python et la persistance de données — initiation python 1.5
Python et la persistance de données — initiation python 1.5Python et la persistance de données — initiation python 1.5
Python et la persistance de données — initiation python 1.5Abib Faye
 
Chap6 Manipulation des fichiers
Chap6 Manipulation des fichiers Chap6 Manipulation des fichiers
Chap6 Manipulation des fichiers Mariem ZAOUALI
 
MarsJUG - Le classpath n'est pas mort, mais presque
MarsJUG - Le classpath n'est pas mort, mais presqueMarsJUG - Le classpath n'est pas mort, mais presque
MarsJUG - Le classpath n'est pas mort, mais presqueAlexis Hassler
 
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
 
POO Licence L2 Partie I.pdf
POO Licence L2 Partie I.pdfPOO Licence L2 Partie I.pdf
POO Licence L2 Partie I.pdfLarbaSAWADOGO2
 
Alphorm.com Formation Python pour les pentesteurs
Alphorm.com Formation Python pour les pentesteursAlphorm.com Formation Python pour les pentesteurs
Alphorm.com Formation Python pour les pentesteursAlphorm
 
Entrees sorties
Entrees sortiesEntrees sorties
Entrees sortiesyazidds2
 
Atoum, le framework de tests unitaires pour PHP 5.3 simple, moderne et intuit...
Atoum, le framework de tests unitaires pour PHP 5.3 simple, moderne et intuit...Atoum, le framework de tests unitaires pour PHP 5.3 simple, moderne et intuit...
Atoum, le framework de tests unitaires pour PHP 5.3 simple, moderne et intuit...fdussert
 
cours j2ee -présentation
cours  j2ee -présentationcours  j2ee -présentation
cours j2ee -présentationYassine Badri
 
#5 Java EE5 Client Lourd et Smart Client
#5 Java EE5  Client Lourd  et Smart Client#5 Java EE5  Client Lourd  et Smart Client
#5 Java EE5 Client Lourd et Smart ClientGuillaume Sauthier
 
Sérialisation, Persistance Et Mapping Objet Relationnel
Sérialisation, Persistance Et Mapping Objet RelationnelSérialisation, Persistance Et Mapping Objet Relationnel
Sérialisation, Persistance Et Mapping Objet RelationnelKhalid ALLILI
 
Affichage d'un document Office sous Android
Affichage d'un document Office sous AndroidAffichage d'un document Office sous Android
Affichage d'un document Office sous AndroidStéphane Liétard
 

Semelhante a Pres_ java_Fichier_Suite_cour sur les fichier en java.pdf (20)

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
 
Programmation Java
Programmation JavaProgrammation Java
Programmation Java
 
Chapitre 1 introduction generale
Chapitre 1   introduction generaleChapitre 1   introduction generale
Chapitre 1 introduction generale
 
Python et la persistance de données — initiation python 1.5
Python et la persistance de données — initiation python 1.5Python et la persistance de données — initiation python 1.5
Python et la persistance de données — initiation python 1.5
 
Chap6 Manipulation des fichiers
Chap6 Manipulation des fichiers Chap6 Manipulation des fichiers
Chap6 Manipulation des fichiers
 
JAVA-IO.pdf
JAVA-IO.pdfJAVA-IO.pdf
JAVA-IO.pdf
 
JAVA-IO.pdf
JAVA-IO.pdfJAVA-IO.pdf
JAVA-IO.pdf
 
MarsJUG - Le classpath n'est pas mort, mais presque
MarsJUG - Le classpath n'est pas mort, mais presqueMarsJUG - Le classpath n'est pas mort, mais presque
MarsJUG - Le classpath n'est pas mort, mais presque
 
Springioc
SpringiocSpringioc
Springioc
 
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
 
POO Licence L2 Partie I.pdf
POO Licence L2 Partie I.pdfPOO Licence L2 Partie I.pdf
POO Licence L2 Partie I.pdf
 
Alphorm.com Formation Python pour les pentesteurs
Alphorm.com Formation Python pour les pentesteursAlphorm.com Formation Python pour les pentesteurs
Alphorm.com Formation Python pour les pentesteurs
 
Entrees sorties
Entrees sortiesEntrees sorties
Entrees sorties
 
Atoum, le framework de tests unitaires pour PHP 5.3 simple, moderne et intuit...
Atoum, le framework de tests unitaires pour PHP 5.3 simple, moderne et intuit...Atoum, le framework de tests unitaires pour PHP 5.3 simple, moderne et intuit...
Atoum, le framework de tests unitaires pour PHP 5.3 simple, moderne et intuit...
 
cours j2ee -présentation
cours  j2ee -présentationcours  j2ee -présentation
cours j2ee -présentation
 
#5 Java EE5 Client Lourd et Smart Client
#5 Java EE5  Client Lourd  et Smart Client#5 Java EE5  Client Lourd  et Smart Client
#5 Java EE5 Client Lourd et Smart Client
 
Sérialisation, Persistance Et Mapping Objet Relationnel
Sérialisation, Persistance Et Mapping Objet RelationnelSérialisation, Persistance Et Mapping Objet Relationnel
Sérialisation, Persistance Et Mapping Objet Relationnel
 
Les Threads.ppt
Les Threads.pptLes Threads.ppt
Les Threads.ppt
 
Affichage d'un document Office sous Android
Affichage d'un document Office sous AndroidAffichage d'un document Office sous Android
Affichage d'un document Office sous Android
 

Pres_ java_Fichier_Suite_cour sur les fichier en java.pdf

  • 2. Nouveautés Java 7 Le try-with-resources : à partir de java SE 7 Exemple: try ( FileReader lire= new FileReader("fich1.txt" ) ; FileWriter ecrire= new FileWriter ("fich2.txt" ) ){ int car= lire.read() ; while ( car != −1) { ecrire.write ( car ) ; car= r.read( ) ; } }  Instructions d’initialisation des ressources séparées par des ‘;’  La méthode close() est automatiquement appelée à la fin du bloc.  Pas besoin du bloc finally …  moins du code Prog Java avancée 2
  • 3. Java 7 permet le traitement de plusieurs types d'exceptions, séparés par un 'pipe‘ (|). try { //….. } catch (ClassNotFoundException | IOException| IllegalAccessException e) { System.err.println("Erreur: ", e); } Nouveautés Java 7 Prog Java avancée 3
  • 4. Nouveautés Java 7 Java propose une nouvelle API (NIO.2) pour la gestion et l’accès au système de fichier. Quelques limites de la classe File de java.io:  gestion des exceptions : impossibilité d’obtenir la moindre information sur l’origine de quelques problèmes  accès limité aux propriétés des fichiers (propriétaire, droits, …)  absence de certaines fonctionnalités (copie et déplacement de fichier, gestion des liens, …)  La classe File est remplacée par une nouvelle classe Path (package java.nio.file) Prog Java avancée 4
  • 5. Gestion des chemins  Un chemin d’accès à une ressource fichier ou répertoire peut être absolu ou relatif.  À partir de java 7, l’interface java.nio.file.Path représente le chemin.  Avantages de Path  accès facile aux éléments d’un chemin;  comparaison de chemins;  possibilité d’être averti lorsque un fichier est modifié (surveillance).  Quelques méthodes:  equals, compareTo, startsWith et endsWith : comparaison  normalize: remplacer « . » et « .. » dans les chemins  toFile: créer un File depuis un Path Prog Java avancée 5
  • 6. Gestion des chemins  La classe java.nio.file.Paths est souvent utilisée pour créer des instances Path, à partir d'une URI ou d'une chaîne de caractères. Exemples: Path path1 = Paths.get("d:"); Path path2 = Paths.get(System.getProperty("user.home")); Path path3 = Paths.get(System.getProperty("user.dir", "fichier.txt"));  La classe java.nio.file.Files contient des méthodes statiques pour manipuler des objets de type Path. Prog Java avancée 6
  • 7. Accès aux fichiers La classe java.nio.file.Files contient des méthodes permettant:  la manipulation des chemins  création et suppression des fichiers et des dossiers  copie et déplacement des fichiers et dossiers  vérification et gestion des droits d’accès  existence des fichiers  création d’objets flots  parcours d’arborescence  méthodes simplifiées pour la lecture et l’écriture. Prog Java avancée 7
  • 8. Accès aux fichiers Exemples: Path homePath = Paths.get(System.getProperty("user.home")); //avoir et afficher tous les fichiers du répertoire try (DirectoryStream<Path> flot= Files.newDirectoryStream(homePath)) { for (Path elem : flot) System.out.println(elem); } //appliquer un filtre (pas tous les fichiers en utilisant la notation des Exp Reg) try (DirectoryStream<Path> flot= Files.newDirectoryStream(homePath, "*.{java,jsp,xml}")) { for (Path elem : flot) System.out.println(elem); //ou System.out.println(fich.getFileName()); } Prog Java avancée 8
  • 9. Lecture d’un fichier  lecture séquentielle du contenu d'un fichier: instancier FileReader ou FileInputStream.  Files fournit des méthodes pour simplifier … Exemple: Parcourir le contenu d'un fichier à l’aide de la méthode newBufferedReader. Path pt= Paths.get("d:javasrcDemoFile.java"); try (BufferedReader br = Files.newBufferedReader(pt)) { String ligne = null; while ((ligne = br.readLine()) != null) { System.out.println(ligne); } } Prog Java avancée 9
  • 10. Lecture d’un fichier  Lecture des petits fichiers:  Binaires: readAllBytes  Textuels: readAllLines Exemple: Path pt= Paths.get("d:javasrcDemoFile.java"); List<String> lignes = Files.readAllLines(pt); for (String elem : lignes) { System.out.println(elem); } Prog Java avancée 10
  • 11. Ecriture dans un fichier  La classe Files offre des méthodes : newOutputStream, newInputStream, newBufferedWriter, …  Exemple: Charset utf8 = Charset.forName("UTF-8"); //ou utiliser StandardCharsets.UTF_8 Path pt= Paths.get("d:fiche.txt"); String contenu= "Nom et prénom: Toto TitinÂge: 24nDiplôme: BACn"; try (BufferedWriter bw= Files.newBufferedWriter(pt,utf8, StandardOpenOption.CREATE) ) { bw.write(contenu); } Prog Java avancée 11
  • 12. Afficher les répartitions Exemple 1: afficher les partitions de sa machine Iterable<Path> lecteurs = FileSystems.getDefault().getRootDirectories(); for (Path nom: lecteurs ) { System.out.println(nom); } Prog Java avancée 12
  • 13. Afficher les répartitions Exemple 2: avec plus de détails try{ FileSystem defaultFS = FileSystems.getDefault(); Iterable<Path> lecteurs = defaultFS.getRootDirectories(); for (Path lecteur : lecteurs ) { System.out.println(lecteur); FileStore fs= Files.getFileStore(lecteur); long et=fs.getTotalSpace(), ed=fs.getUsableSpace() ; System.out.printf("Taille (Go) : %.2fn", et/1073741824.0); System.out.printf("Espace disponible (Go) : %.2fn", ed/1073741824.0); System.out.println("___________________________"); } } catch(Exception e){ } Prog Java avancée 13