Dateipfad in Java

Shikha Chaudhary 12 Oktober 2023
  1. Lesen einer Java-Datei
  2. Wie man den Dateipfad in Java angibt
  3. Wie man den Dateipfad in Java ermittelt
  4. Fazit
Dateipfad in Java

Beim Arbeiten mit Dateien in Java ist es wichtig, den richtigen Dateinamen sowie den richtigen Pfad und die richtige Erweiterung anzugeben.

Die Dateien, mit denen wir arbeiten, können sich im selben oder in einem anderen Verzeichnis befinden. Je nach Speicherort der Datei ändert sich der Pfadname.

In diesem Artikel wird erläutert, wie Sie in Java auf Dateipfade zugreifen und diese angeben.

Lesen einer Java-Datei

Das Lesen einer Datei bedeutet, den Inhalt einer Datei zu erhalten. Wir verwenden die Java-Klasse Scanner, um eine Datei zu lesen. Lassen Sie uns dies anhand eines Beispiels verstehen.

Wir werden zuerst ein Java-Programm schreiben, um eine neue Datei zu erstellen. Dann schreiben wir ein weiteres Java-Programm, um dieser neu erstellten Datei Inhalt hinzuzufügen.

Abschließend lesen wir den Inhalt dieser Datei. Beachten Sie, dass keines der Programme in diesem Artikel auf einem Online-Compiler ausgeführt werden kann (verwenden Sie einen Offline-Compiler mit korrekt eingestelltem Pfad).

Erstellen einer Datei

import java.io.File;
import java.io.IOException;

public class Main {
  public static void main(String[] args) {
    // Try catch block
    try {
      // Creating a file with the name demofile.txt
      File myFile = new File("demofile.txt");

      if (myFile.createNewFile()) {
        System.out.println("The file is created with the name: " + myFile.getName());
      } else {
        System.out.println("The file already exists.");
      }
    } catch (IOException x) {
      System.out.println("An error is encountered.");
      x.printStackTrace();
    }
  }
}

Ausgabe:

The file is created with the name: demofile.txt

Diese Datei wird in demselben Verzeichnis erstellt, in dem sich die Java-Dateien befinden. Alle Java-Programmdateien befinden sich im C-Verzeichnis.

Fügen Sie der Datei etwas Inhalt hinzu

import java.io.FileWriter;
import java.io.IOException;

public class Main {
  public static void main(String[] args) {
    try {
      // create an object
      FileWriter writeInFile = new FileWriter("demofile.txt");

      // Adding content to this file
      writeInFile.write("We are learning about paths in Java.");

      writeInFile.close();
      System.out.println("Successfully done!");
    } catch (IOException x) {
      System.out.println("An error is encountered.");
      x.printStackTrace();
    }
  }
}

Ausgabe:

Successfully done!

Lesen Sie die Datei

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner; //scanner class for reading the file

public class Main {
  public static void main(String[] args) {
    try {
      File myFile = new File("demofile.txt");

      // create the scanner object
      Scanner readFile = new Scanner(myFile);

      while (readFile.hasNextLine()) {
        String data = readFile.nextLine();
        System.out.println(data);
      }
      readFile.close();
    } catch (FileNotFoundException x) {
      System.out.println("An error occurred.");
      x.printStackTrace();
    }
  }
}

Ausgabe:

We are learning about paths in Java.

Beachten Sie, dass wir hier innerhalb der Methode File() nur den Namen der Datei mit ihrer Erweiterung übergeben.

Wir geben nicht den vollständigen Pfad der demofile.txt an. Die demofile.txt befindet sich im selben Verzeichnis und Ordner, in dem wir alle diese Java-Programmdateien speichern.

Wenn die demofile.txt jedoch in einem anderen Verzeichnis oder Ordner vorhanden ist, ist das Lesen dieser Datei nicht so einfach. In solchen Fällen geben wir den vollständigen Pfad der Datei an.

Weitere Einzelheiten zum Dateisystem in Java finden Sie in dieser Dokumentation.

Wie man den Dateipfad in Java angibt

Um den Pfad einer Datei anzugeben, übergeben wir den Dateinamen mit seiner Erweiterung innerhalb der File()-Methode. Wir machen es so.

new File("demofile.txt")

Beachten Sie, dass der Dateiname nur ausreicht, wenn sich die Datei im selben Ordner wie das Verzeichnis des Arbeitsprojekts befindet. Andernfalls müssen wir den vollständigen Pfad der Datei angeben.

Wenn Sie den Namen der Datei nicht kennen, verwenden Sie die Methode list(). Diese Methode gibt die Liste aller Dateien im aktuellen Verzeichnis zurück.

Die in der Klasse File der Bibliothek java.io vorhandene Methode list() gibt die Liste aller Dateien und Verzeichnisse als Array zurück. Die zurückgegebene Ausgabe basiert auf dem aktuellen Verzeichnis, das durch einen abstrakten Pfadnamen definiert ist.

Bezeichnet der abstrakte Pfadname kein Verzeichnis, gibt die Methode list() null zurück. Manchmal wissen wir nicht, wo sich die Datei befindet.

Außerdem treten Fehler auf, wenn die Datei, die wir lesen müssen, nicht im aktuellen Arbeitsverzeichnis vorhanden ist. Um diese Probleme zu vermeiden, ist es besser, den vollständigen Pfad der Datei zu verwenden.

Verwenden Sie die unten angegebenen Methoden, um den genauen Pfad einer Datei zu erhalten.

Wie man den Dateipfad in Java ermittelt

Wenn wir den Pfad einer Datei nicht kennen, können wir einige Methoden von Java verwenden, um den Pfad einer Datei zu finden. Dann können wir diesen Pfadnamen als Argument angeben.

Java bietet drei Arten von Dateipfaden – absolute, canonical und abstract. Die Klasse java.io.file hat drei Methoden, um den Pfad einer Datei zu finden.

Holen Sie sich den Dateipfad mit der Methode getPath() in Java

Die Methode getPath() gehört zur File-Klasse von Java. Es gibt den abstrakten Dateipfad als Zeichenfolge zurück.

Ein abstrakter Pfadname ist ein Objekt von java.io.file, das auf eine Datei auf der Festplatte verweist.

Syntax:

file.getPath()

Beispiel:

import java.io.*;
public class Main {
  public static void main(String args[]) {
    try {
      // create an object
      File myFile = new File("demo.txt");

      // call the getPath() method
      String path = myFile.getPath();
      System.out.println("The path of this file is: " + path);
    } catch (Exception e) {
      System.err.println(e.getMessage());
    }
  }
}

Ausgabe:

The path of this file is: demo.txt

Wie Sie in der obigen Ausgabe sehen können, wird nur der Name der Datei mit der Erweiterung ausgegeben. Dies zeigt, dass die Datei in demselben Ordner vorhanden ist, in dem sich die Java-Programmdatei befindet.

Abrufen des Dateipfads mit der Methode getAbsolutePath() in Java

Die Methode getAbsolutePath() gibt einen String als absoluten Pfad der Datei zurück. Wenn wir die Datei mit einem absoluten Pfadnamen erstellen, gibt die Methode getAbsolutePath() den Pfadnamen zurück.

Wenn wir das Objekt jedoch mit einem relativen Pfad erstellen, löst die Methode getAbsolutePath() den Pfadnamen je nach System auf. Es ist in der File-Klasse von Java vorhanden.

Syntax:

file.getAbsolutePath()

Beachten Sie, dass der absolute Pfad der Pfad ist, der die vollständige URL der Datei angibt, die im System vorhanden ist, unabhängig vom Verzeichnis, in dem sie sich befindet. Andererseits gibt der relative Pfad den Pfad der Datei zum aktuellen Verzeichnis an.

Beispiel:

// import the java.io library
import java.io.*;

public class Main {
  public static void main(String args[]) {
    // try catch block
    try {
      // create the file object
      File myFile = new File("pathdemo.txt");

      // call the getAbsolutePath() method
      String absolutePath = myFile.getAbsolutePath();

      System.out.println("The Absolute path of the file is: " + absolutePath);
    } catch (Exception e) {
      System.err.println(e.getMessage());
    }
  }
}

Ausgabe:

The Absolute path of the file is: C:\Users\PC\pathdemo.txt

Beachten Sie, dass wir diesmal den vollständigen Arbeitspfad erhalten, beginnend vom aktuellen Arbeitsverzeichnis bis zum aktuellen Ordner, in dem sich die Datei befindet.

Wenn Sie also den Speicherort einer Datei nicht kennen, verwenden Sie die absolute Pfadmethode, um herauszufinden, wo sich die Datei befindet. Dann können Sie diesen Pfad immer dann angeben, wenn Sie diese Datei lesen müssen.

Auf diese Weise würde die zu lesende Datei leicht gefunden werden.

Abrufen des Dateipfads mit der Methode getCanonicalPath() in Java

Vorhanden in der Klasse Path gibt den kanonischen Pfad einer Datei zurück. Wenn der Pfadname kanonisch ist, gibt die Methode getCanonicalPath() den Pfad der Datei zurück.

Der kanonische Pfad ist immer einzigartig und absolut. Darüber hinaus entfernt diese Methode alle . oder .. aus dem Pfad.

Syntax:

file.getCanonicalPath()

Beispiel:

// import the java.io library
import java.io.*;

public class Main {
  public static void main(String args[]) {
    // try catch block
    try {
      // create the file object
      File myFile = new File("C:\\Users");

      // call the getCanonicalPath() method
      String canonical = myFile.getCanonicalPath();

      System.out.println("The Canonical path is : " + canonical);
    } catch (Exception x) {
      System.err.println(x.getMessage());
    }
  }
}

Ausgabe:

The Canonical path is:C:\Users

Weitere Informationen zu Pfaden in Java finden Sie in dieser Dokumentation.

Fazit

In diesem Artikel haben wir gesehen, wie wir den Pfad einer Datei angeben können, wenn wir sie lesen müssen. Wir haben auch die verschiedenen Methoden wie getPath(), getAbsolutePath() und getCanonical() studiert, die Java bereitstellt, um den Pfad einer Datei zu erhalten.

Außerdem haben wir gesehen, wie sich der Pfad je nach Verzeichnis und Ordner der Datei und des aktuellen Projekts ändert. Wir haben auch einige Dateien als Demonstration erstellt und gelesen.

Diese Programme laufen jedoch nicht auf Online-Compilern.

Verwandter Artikel - Java File

Verwandter Artikel - Java Path