Java Language
Nouveau fichier E / S
Recherche…
Syntaxe
- Paths.get (String first, String ... plus) // Crée une instance Path par ses éléments String
- Paths.get (URI URI) // Crée une instance Path par un URI
Créer des chemins
La classe Path
est utilisée pour programmer un chemin dans le système de fichiers (et peut donc pointer vers des fichiers aussi bien que des répertoires, même vers des répertoires inexistants)
Un chemin peut être obtenu en utilisant la classe helper Paths
:
Path p1 = Paths.get("/var/www");
Path p2 = Paths.get(URI.create("file:///home/testuser/File.txt"));
Path p3 = Paths.get("C:\\Users\\DentAr\\Documents\\HHGTDG.odt");
Path p4 = Paths.get("/home", "arthur", "files", "diary.tex");
Récupération d'informations sur un chemin
Les informations sur un chemin peuvent être obtenues à l'aide des méthodes d'un objet Path
:
toString()
renvoie la représentation sous forme de chaîne du cheminPath p1 = Paths.get("/var/www"); // p1.toString() returns "/var/www"
getFileName()
renvoie le nom du fichier (ou plus précisément le dernier élément du cheminPath p1 = Paths.get("/var/www"); // p1.getFileName() returns "www" Path p3 = Paths.get("C:\\Users\\DentAr\\Documents\\HHGTDG.odt"); // p3.getFileName() returns "HHGTDG.odt"
getNameCount()
renvoie le nombre d'éléments formant le cheminPath p1 = Paths.get("/var/www"); // p1.getNameCount() returns 2
getName(int index)
renvoie l'élément à l'index donnéPath p1 = Paths.get("/var/www"); // p1.getName(0) returns "var", p1.getName(1) returns "www"
getParent()
renvoie le chemin du répertoire parentPath p1 = Paths.get("/var/www"); // p1.getParent().toString() returns "/var"
getRoot()
renvoie la racine du cheminPath p1 = Paths.get("/var/www"); // p1.getRoot().toString() returns "/" Path p3 = Paths.get("C:\\Users\\DentAr\\Documents\\HHGTDG.odt"); // p3.getRoot().toString() returns "C:\\"
Manipulation des chemins
Rejoindre deux chemins
Les chemins peuvent être joints en utilisant la méthode resolve()
. Le chemin d'accès doit être un chemin partiel, qui ne comprend pas l'élément racine.
Path p5 = Paths.get("/home/");
Path p6 = Paths.get("arthur/files");
Path joined = p5.resolve(p6);
Path otherJoined = p5.resolve("ford/files");
joined.toString() == "/home/arthur/files"
otherJoined.toString() == "/home/ford/files"
Normaliser un chemin
Les chemins peuvent contenir les éléments .
(qui pointe vers le répertoire dans lequel vous vous trouvez actuellement) et ..
(qui pointe vers le répertoire parent).
Lorsqu'il est utilisé dans un chemin, .
peut être supprimé à tout moment sans changer la destination du chemin, et ..
peut être supprimé avec l'élément précédent.
Avec l'API Paths, cela se fait en utilisant la méthode .normalize()
:
Path p7 = Paths.get("/home/./arthur/../ford/files");
Path p8 = Paths.get("C:\\Users\\.\\..\\Program Files");
p7.normalize().toString() == "/home/ford/files"
p8.normalize().toString() == "C:\\Program Files"
Récupération d'informations à l'aide du système de fichiers
Pour interagir avec le système de fichiers, utilisez les méthodes de la classe Files
.
Vérification de l'existence
Pour vérifier l'existence du fichier ou du répertoire indiqué par un chemin d'accès, utilisez les méthodes suivantes:
Files.exists(Path path)
et
Files.notExists(Path path)
!Files.exists(path)
ne doit pas nécessairement être égal à Files.notExists(path)
, car il existe trois scénarios possibles:
- Est vérifié l'existence est un fichier ou un répertoire (
exists
des rendementstrue
etnotExists
retournefalse
dans ce cas) - La non-existence d'un fichier ou d'un répertoire est vérifiée (
exists
renvoiefalse
etnotExists
renvoietrue
) - Ni l'existence ni la non-existence d'un fichier ou d'un répertoire ne peuvent être vérifiées (par exemple en raison de restrictions d'accès): Les deux
exists
etnonExists
renvoie false.
Vérifier si un chemin pointe vers un fichier ou un répertoire
Ceci est fait en utilisant Files.isDirectory(Path path)
et Files.isRegularFile(Path path)
Path p1 = Paths.get("/var/www");
Path p2 = Paths.get("/home/testuser/File.txt");
Files.isDirectory(p1) == true
Files.isRegularFile(p1) == false
Files.isDirectory(p2) == false
Files.isRegularFile(p2) == true
Obtenir des propriétés
Cela peut être fait en utilisant les méthodes suivantes:
Files.isReadable(Path path)
Files.isWritable(Path path)
Files.isExecutable(Path path)
Files.isHidden(Path path)
Files.isSymbolicLink(Path path)
Obtenir le type MIME
Files.probeContentType(Path path)
Cela tente d'obtenir le type MIME d'un fichier. Il retourne un type MIME String, comme ceci:
-
text/plain
pour les fichiers texte -
text/html
pour les pages HTML -
application/pdf
pour les fichiers PDF -
image/png
pour les fichiers PNG
Lecture de fichiers
Les fichiers peuvent être lus en octets et en lignes en utilisant la classe Files
.
Path p2 = Paths.get(URI.create("file:///home/testuser/File.txt"));
byte[] content = Files.readAllBytes(p2);
List<String> linesOfContent = Files.readAllLines(p2);
Files.readAllLines()
prend éventuellement un jeu de caractères comme paramètre ( StandardCharsets.UTF_8
par défaut):
List<String> linesOfContent = Files.readAllLines(p2, StandardCharsets.ISO_8859_1);
Ecrire des fichiers
Les fichiers peuvent être écrits en mordant et en ligne en utilisant la classe Files
Path p2 = Paths.get("/home/testuser/File.txt");
List<String> lines = Arrays.asList(
new String[]{"First line", "Second line", "Third line"});
Files.write(p2, lines);
Files.write(Path path, byte[] bytes)
Les fichiers existants seront remplacés, des fichiers non existants seront créés.