1. PathKlasse
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 Fileund, FileInputStreamum mit Dateien zu arbeiten. Die Klasse ist jedoch Fileinzwischen 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 PathKlasse, wie man mit Dateien arbeitet. Pathist die Klasse, die ersetzt hat File. Es ist sicherer und effizienter.
PathKlasse
Technisch gesehen Pathhandelt es sich nicht um eine Klasse, sondern um eine Schnittstelle. Dies geschieht, um das Schreiben eines Nachkommen der PathKlasse 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 PathSchnittstelle überall in den Methoden verwendet, die mit Dateien arbeiten, obwohl die Arbeit in Wirklichkeit über ihre Nachkommenklassen erfolgt: WindowsPath, UnixPath, ...
PathEin Objekt erstellen
Um ein PathObjekt zu erstellen (das tatsächlich ein Objekt der WindowsPathabgeleiteten Klasse sein wird), müssen Sie eine Anweisung wie diese verwenden:
Path name = Path.of(path);
Dabei nameist der Name einer PathVariablen und pathder Pfad zur Datei (oder zum Verzeichnis) einschließlich des Namens der Datei (oder des Verzeichnisses). Und ofist eine statische Methode der PathKlasse.
Die of()Methode wird zum Erstellen von WindowsPathObjekten verwendet, wenn das Programm unter Windows ausgeführt wird. Wenn das Programm unter Linux läuft, UnixPathwerden Objekte erstellt. Sie können kein PathObjekt 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 PathObjekt vorhanden ist. Vielleicht möchten Sie einfach nur eine Datei erstellen ... Ein PathObjekt ist wie ein aufgemotztes StringObjekt: 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 PathTyps
Die PathSchnittstelle 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 PathObjekt in ein veraltetes FileObjekt |
|
Konvertiert ein PathObjekt in ein URIObjekt |
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 FileObjekt zurück, das denselben Dateipfad wie das PathObjekt 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