1. Path
classe
Si vous voulez écrire un programme qui fait quelque chose avec des fichiers sur disque, c'est assez facile. Java a beaucoup de classes qui vous aident à travailler à la fois avec les fichiers eux-mêmes et avec leur contenu.
Les premières versions de Java utilisaient des classes comme File
et FileInputStream
pour travailler avec des fichiers. Cependant, la File
classe est désormais obsolète et son utilisation n'est pas recommandée. Bien sûr, vous pouvez toujours le rencontrer dans le code, les paramètres de méthode ou les constructeurs de classe.
Dès le début, nous allons commencer à apprendre à travailler avec des fichiers à l'aide de la Path
classe. Path
est la classe qui a remplacé File
. C'est plus sûr et plus efficace.
Path
classe
Techniquement, Path
ce n'est pas une classe — c'est une interface. Ceci est fait pour permettre l'écriture d'un descendant de la Path
classe pour chaque système d'exploitation (et système de fichiers).
Windows a une norme pour écrire les chemins de fichiers et Linux en a une autre. Bien sûr, il existe de nombreux autres systèmes d'exploitation dans le monde, et chacun a sa propre norme.
C'est pourquoi l' Path
interface est utilisée partout dans les méthodes qui travaillent avec des fichiers, bien qu'en réalité le travail passe par ses classes descendantes : WindowsPath
, UnixPath
, ...
Création d'un Path
objet
Pour créer un Path
objet (qui sera en fait un objet de la WindowsPath
classe descendante), vous devez utiliser une instruction comme celle-ci :
Path name = Path.of(path);
Où name
est le nom d'une Path
variable, et path
est le chemin d'accès au fichier (ou au répertoire) incluant le nom du fichier (ou du répertoire). Et of
est une méthode statique de la Path
classe.
La of()
méthode est utilisée pour créer WindowsPath
des objets si le programme s'exécute sous Windows. Si le programme s'exécute sous Linux, des UnixPath
objets sont créés. Vous ne pouvez pas créer un Path
objet à l'aide d'un code tel que .new Path()
Exemples:
Code | Note |
---|---|
|
Chemin d'accès au fichier |
|
Chemin d'accès au répertoire |
Le fichier (ou le répertoire) n'a pas besoin d'exister pour qu'un Path
objet valide existe. Peut-être que vous voulez juste créer un fichier... Un Path
objet est comme un gonflé String
: il n'est pas lié à un fichier spécifique sur le disque — il stocke juste un certain chemin sur le disque. C'est ça.
2. Méthodes du Path
type
L' Path
interface a quelques méthodes intéressantes. Les plus intéressantes sont présentées dans le tableau ci-dessous.
Méthode | Description |
---|---|
|
Renvoie le répertoire parent |
|
Renvoie le nom du fichier sans le répertoire |
|
Renvoie le répertoire racine à partir d'un chemin |
|
Vérifie si le chemin actuel est absolu |
|
Convertit le chemin en absolu |
|
Supprime les caractères génériques dans un nom de répertoire. |
|
Construit un nouveau chemin absolu à partir de chemins absolus et relatifs. |
|
Obtient un chemin relatif à partir de deux chemins absolus. |
|
Vérifie si le chemin actuel commence par un chemin donné |
|
Vérifie si le chemin actuel se termine par un chemin donné |
|
Divise le chemin en parties en utilisant / comme délimiteur. Renvoie le nombre de pièces. |
|
Divise le chemin en parties en utilisant / comme délimiteur. Renvoie une partie par son index. |
|
Divise le chemin en parties en utilisant / comme délimiteur. Renvoie le sous-chemin correspondant à l'intervalle donné. |
|
Convertit un Path objet en File objet obsolète |
|
Convertit un Path objet en URI objet |
Voici une brève description des méthodes existantes.
3. Diviser un chemin en parties
La getParent()
méthode renvoie le chemin qui pointe vers le répertoire parent du chemin actuel. Que ce chemin soit un répertoire ou un fichier :
Code | Valeur |
---|---|
|
|
|
|
|
|
La getFileName()
méthode renvoie un seul nom de fichier (ou de répertoire) — celui qui vient après le dernier délimiteur :
Code | Valeur |
---|---|
|
|
|
|
|
|
La getRoot()
méthode renvoie le chemin d'accès au répertoire racine :
Code | Valeur |
---|---|
|
|
4. Chemins absolus et relatifs
Il existe deux types de chemins : absolu et relatif. Un chemin absolu commence à partir du répertoire racine. Pour Windows, cela pourrait être le c:\
dossier ; pour Linux — le /
répertoire
Un chemin relatif est significatif par rapport à un répertoire. Autrement dit, c'est comme la fin de la route, mais sans le début. Vous pouvez transformer un chemin relatif en chemin absolu et vice versa
boolean isAbsolute()
méthode
La méthode vérifie si le chemin actuel est absolu
Code | Valeur |
---|---|
|
|
|
|
Path toAbsolutePath()
méthode
Convertit le chemin en absolu. Si nécessaire, y ajoute le répertoire de travail courant :
Code | Valeur |
---|---|
|
|
|
|
Path normalize()
méthode
Dans le chemin, au lieu d'un nom de répertoire, vous pouvez écrire "..", ce qui signifie revenir en arrière d'un répertoire . La normalisation élimine ces choses. Exemples:
Code | Valeur |
---|---|
|
|
|
|
Path relativize(Path other)
méthode
La relativize()
méthode permet de construire les « différences entre chemins » : un chemin par rapport à un autre
Code | Valeur |
---|---|
|
|
|
|
|
Exception d'argument illégal: les deux chemins ont une "racine" différente (disques différents) |
Path resolve(Path other)
méthode
La resolve()
méthode fait le contraire de relativize()
: elle construit un nouveau chemin absolu à partir d'un chemin absolu et d'un chemin relatif.
Code | Valeur |
---|---|
|
|
|
|
toFile()
méthode
La méthode renvoie un File
objet obsolète qui stocke le même chemin de fichier que l' Path
objet.
toURI()
méthode
La méthode convertit le chemin en un URI standard et renvoie un objet contenant le chemin d'accès au fichier :
Chemin d'accès au fichier | URI vers le fichier |
---|---|
|
|
GO TO FULL VERSION