1. Path
Klasse
Wenn Sie ein Programm schreiben möchten, das etwas mit Dateien auf der Festplatte macht, ist das ganz einfach. Java verfügt über zahlreiche Klassen, die Ihnen bei der Arbeit sowohl mit den Dateien selbst als auch mit deren Inhalten helfen.
Frühe Versionen von Java verwendeten Klassen wie File
und, FileInputStream
um mit Dateien zu arbeiten. Die Klasse ist jedoch File
inzwischen veraltet und wird nicht zur Verwendung empfohlen. Natürlich kann es immer noch in Code, Methodenparametern oder Klassenkonstruktoren vorkommen.
Von Anfang an lernen wir mit der Path
Klasse, wie man mit Dateien arbeitet. Path
ist die Klasse, die ersetzt hat File
. Es ist sicherer und effizienter.
Path
Klasse
Technisch gesehen Path
handelt es sich nicht um eine Klasse, sondern um eine Schnittstelle. Dies geschieht, um das Schreiben eines Nachkommen der Path
Klasse für jedes Betriebssystem (und Dateisystem) zu ermöglichen.
Windows hat einen Standard zum Schreiben von Dateipfaden und Linux einen anderen. Natürlich gibt es auf der Welt noch viele andere Betriebssysteme und jedes hat seinen eigenen Standard.
Aus diesem Grund wird die Path
Schnittstelle überall in den Methoden verwendet, die mit Dateien arbeiten, obwohl die Arbeit in Wirklichkeit über ihre Nachkommenklassen erfolgt: WindowsPath
, UnixPath
, ...
Path
Ein Objekt erstellen
Um ein Path
Objekt zu erstellen (das tatsächlich ein Objekt der WindowsPath
abgeleiteten Klasse sein wird), müssen Sie eine Anweisung wie diese verwenden:
Path name = Path.of(path);
Dabei name
ist der Name einer Path
Variablen und path
der Pfad zur Datei (oder zum Verzeichnis) einschließlich des Namens der Datei (oder des Verzeichnisses). Und of
ist eine statische Methode der Path
Klasse.
Die of()
Methode wird zum Erstellen von WindowsPath
Objekten verwendet, wenn das Programm unter Windows ausgeführt wird. Wenn das Programm unter Linux läuft, UnixPath
werden Objekte erstellt. Sie können kein Path
Objekt mit Code wie erstellen .new Path()
Beispiele:
Code | Notiz |
---|---|
|
Pfad zur Datei |
|
Pfad zum Verzeichnis |
Die Datei (oder das Verzeichnis) muss nicht vorhanden sein, damit ein gültiges Path
Objekt vorhanden ist. Vielleicht möchten Sie einfach nur eine Datei erstellen ... Ein Path
Objekt ist wie ein aufgemotztes String
Objekt: Es ist nicht an eine bestimmte Datei auf der Festplatte gebunden – es speichert lediglich einen bestimmten Pfad auf der Festplatte. Das ist es.
2. Methoden des Path
Typs
Die Path
Schnittstelle verfügt über einige interessante Methoden. Die interessantesten sind in der folgenden Tabelle aufgeführt.
Methode | Beschreibung |
---|---|
|
Gibt das übergeordnete Verzeichnis zurück |
|
Gibt den Dateinamen ohne Verzeichnis zurück |
|
Gibt das Stammverzeichnis aus einem Pfad zurück |
|
Prüft, ob der aktuelle Pfad absolut ist |
|
Wandelt den Pfad in einen absoluten Pfad um |
|
Entfernt Platzhalter in einem Verzeichnisnamen. |
|
Konstruiert einen neuen absoluten Pfad aus absoluten und relativen Pfaden. |
|
Ruft einen relativen Pfad aus zwei absoluten Pfaden ab. |
|
Überprüft, ob der aktuelle Pfad mit einem bestimmten Pfad beginnt |
|
Prüft, ob der aktuelle Pfad mit einem angegebenen Pfad endet |
|
Teilt den Pfad in Teile auf und dient / als Trennzeichen. Gibt die Anzahl der Teile zurück. |
|
Teilt den Pfad in Teile auf und dient / als Trennzeichen. Gibt einen Teil anhand seines Index zurück. |
|
Teilt den Pfad in Teile auf und dient / als Trennzeichen. Gibt den Unterpfad zurück, der dem angegebenen Intervall entspricht. |
|
Konvertiert ein Path Objekt in ein veraltetes File Objekt |
|
Konvertiert ein Path Objekt in ein URI Objekt |
Nachfolgend finden Sie eine kurze Beschreibung der vorhandenen Methoden.
3. Einen Pfad in Teile aufteilen
Die getParent()
Methode gibt den Pfad zurück, der auf das übergeordnete Verzeichnis für den aktuellen Pfad verweist. Unabhängig davon, ob es sich bei diesem Pfad um ein Verzeichnis oder eine Datei handelt:
Code | Wert |
---|---|
|
|
|
|
|
|
Die getFileName()
Methode gibt einen einzelnen Datei- (oder Verzeichnis-)Namen zurück – unabhängig davon, was nach dem letzten Trennzeichen kommt:
Code | Wert |
---|---|
|
|
|
|
|
|
Die getRoot()
Methode gibt den Pfad zum Stammverzeichnis zurück:
Code | Wert |
---|---|
|
|
4. Absolute und relative Pfade
Es gibt zwei Arten von Pfaden: absolute und relative. Ein absoluter Pfad beginnt im Stammverzeichnis. Für Windows könnte dies der c:\
Ordner sein; für Linux – das /
Verzeichnis
Ein relativer Pfad ist relativ zu einem Verzeichnis sinnvoll. Das heißt, es ist wie das Ende des Weges, aber ohne Anfang. Sie können einen relativen Pfad in einen absoluten Pfad umwandeln und umgekehrt
boolean isAbsolute()
Methode
Die Methode prüft, ob der aktuelle Pfad absolut ist
Code | Wert |
---|---|
|
|
|
|
Path toAbsolutePath()
Methode
Wandelt den Pfad in einen absoluten Pfad um. Fügt bei Bedarf das aktuelle Arbeitsverzeichnis hinzu:
Code | Wert |
---|---|
|
|
|
|
Path normalize()
Methode
Im Pfad können Sie anstelle eines Verzeichnisnamens „..“ schreiben, was bedeutet, dass Sie ein Verzeichnis zurückgehen . Durch die Normalisierung werden diese Dinge beseitigt. Beispiele:
Code | Wert |
---|---|
|
|
|
|
Path relativize(Path other)
Methode
Mit dieser relativize()
Methode können Sie die „Unterschiede zwischen Pfaden“ konstruieren: einen Pfad relativ zu einem anderen
Code | Wert |
---|---|
|
|
|
|
|
IllegalArgumentException: die beiden Pfade haben ein unterschiedliches „Root“ (verschiedene Festplatten) |
Path resolve(Path other)
Methode
Die resolve()
Methode macht das Gegenteil von relativize()
: Sie erstellt einen neuen absoluten Pfad aus einem absoluten und einem relativen Pfad.
Code | Wert |
---|---|
|
|
|
|
toFile()
Methode
Die Methode gibt ein veraltetes File
Objekt zurück, das denselben Dateipfad wie das Path
Objekt speichert.
toURI()
Methode
Die Methode konvertiert den Pfad in einen Standard- URI und gibt ein Objekt zurück, das den Pfad zur Datei enthält:
Pfad zur Datei | URI zur Datei |
---|---|
|
|
GO TO FULL VERSION