IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Voir le flux RSS

tondeurh

Jouer avec les classes du package java.nio

Noter ce billet
par , 22/05/2016 à 11h57 (530 Affichages)

Tout est dans le code…


Code java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
 
import java.io.IOException;
import java.nio.file.FileStore;
import java.nio.file.FileSystem;
import java.nio.file.FileSystems;
import java.nio.file.FileVisitResult;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.SimpleFileVisitor;
import static java.nio.file.StandardCopyOption.ATOMIC_MOVE;
import java.nio.file.attribute.BasicFileAttributes;
import java.util.Set;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
 *
 * @author herve
 */
public class PlayNIO {
long size=0;
 
 
 public PlayNIO() {
 //tester les classes FileSystem & FileSystems 
 testFileSystem();
 //tester la classe SimpleFileVisitor
 testFileVisitor();
 }
 
 /**
 * Tester la classe SimpleFileVisitor
 * Permet de voir comment on peut visiter l'ensemble 
 * des fichiers d'un répertoire donné
 * On s'interesse ici à la méthode walkFileTree de la classe Files.
 */ 
 private void testFileVisitor(){
 
 try {
 System.out.println("___________________________________");
 System.out.println("List home directory");
 System.out.println("___________________________________");
 
 //définir le chemin à exploiter en définissant un objet Path p que l'on
 //crée grâce à la méthode get de la classe fabrique Paths
 Path p=Paths.get("/home");
 
 //on va ensuite explorer l'arbre complet de notre répertoire
 //en faisant appel a la méthode walkFileTree de la classe Files
 //walkFileTree(path, objet_SimpleFileVisitor)
 //on remarquera ici l'utilisation d'une "inner classe"
 Files.walkFileTree(p, new SimpleFileVisitor<Path>(){
 
 //on redéfini la méthode FileVisitResult de la classe SimpleFileVisitor
 //d'ou l'annotation Override
 @Override
 public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException{
 //on va cumuler la taille totale de l'ensemble des fichiers
 size=size+Files.size(file);
 //on affiche le nom du fichier et sa taille
 System.out.println(file.toString()+" size:"+Files.size(file));
 //on retourne l'ordre FileVisitResult.CONTINUE
 //pour indiquer a notre méthode walkFileTree de passer au fichier suivant si possible
 return FileVisitResult.CONTINUE;
 }
 });
 } catch (IOException ex) {
 Logger.getLogger(PlayNIO.class.getName()).log(Level.SEVERE, null, ex);
 } 
 //affichage de la taille totale en octets et Mo occupé par les fichiers
 System.out.println("Total size ="+size+" octets "+size/(1024*1024)+" Mo");
 
 }
 
 
 /**
 * Tester les classes FileSystem & FileSystems
 * et également exploiter les FileStore
 * et les root Directories.
 */
 private void testFileSystem(){
 try {
 //recuperer le filesystem par defaut
 FileSystem fs= FileSystems.getDefault();
 //informations diverses sur le filesystem par defaut
 System.out.println("___________________________________");
 System.out.println("Nom de l'objet: "+fs.toString());
 System.out.println("Separateur par defaut: "+fs.getSeparator());
 System.out.println("Is Open ? "+fs.isOpen());
 System.out.println("Is read Only ? "+fs.isReadOnly());
 
 System.out.println("___________________________________");
 //attributs du fileSystem
 //sont retournés dans un Set 
 Set<String> setAttrib=fs.supportedFileAttributeViews();
 
 System.out.println("List FileSystem attributes :");
 //on va lister les différents attributs contenu dans la classe collection Set
 for(String sta:setAttrib){
 System.out.println("Attribut: "+sta);
 }
 
 //consulter le fileStore
 //le fileStore correspond à l'unité de disque physique ou logique
 System.out.println("___________________________________");
 //obtenir la liste des files stores
 //ces filestore sont stocké dans une collection Iterable
 Iterable<FileStore> store=fs.getFileStores();
 System.out.println("Get fileStore informations");
 //pour chaque fileStore on réalise les opération ci dessous
 for (FileStore fstor:store){
 try {
 System.out.println("-------------------------------------------");
 System.out.println("Nom : "+fstor.name()+" type : "+fstor.type());
 System.out.println("\tIs Read Only: "+fstor.isReadOnly());
 System.out.println("\tTotal space: "+fstor.getTotalSpace()+"bytes / Unallocated Space: "+fstor.getUnallocatedSpace()+"bytes / Usable Space: "+fstor.getUsableSpace()+"bytes");
 System.out.println("\tBasic attribute ? "+fstor.supportsFileAttributeView("basic"));
 System.out.println("\tDos attribute ? "+fstor.supportsFileAttributeView("dos"));
 System.out.println("\tUnix attribute ? "+fstor.supportsFileAttributeView("unix"));
 System.out.println("\tPosix attribute ? "+fstor.supportsFileAttributeView("posix"));
 } catch (IOException ex) {}
 }
 
 //Exploration du root name
 System.out.println("___________________________________");
 //on obtient l'ensemble des noms root dans une classe collection Iterable
 Iterable<Path> rootDir=fs.getRootDirectories();
 //il n'y a plus qu'a afficher par iteration ces données
 for (Path px:rootDir){
 System.out.println("Root Name: "+px.toString());
 } 
 } catch (Exception ex) { } 
 }
 
 
 /**
 * main entry point
 * @param args 
 */
 public static void main(String[] args) {
 new PlayNIO();
 }
 
}


FIN

Envoyer le billet « Jouer avec les classes du package java.nio » dans le blog Viadeo Envoyer le billet « Jouer avec les classes du package java.nio » dans le blog Twitter Envoyer le billet « Jouer avec les classes du package java.nio » dans le blog Google Envoyer le billet « Jouer avec les classes du package java.nio » dans le blog Facebook Envoyer le billet « Jouer avec les classes du package java.nio » dans le blog Digg Envoyer le billet « Jouer avec les classes du package java.nio » dans le blog Delicious Envoyer le billet « Jouer avec les classes du package java.nio » dans le blog MySpace Envoyer le billet « Jouer avec les classes du package java.nio » dans le blog Yahoo

Mis à jour 23/05/2016 à 13h50 par kolodz

Catégories
Java , Programmation

Commentaires