Datei aus Klassenpfad in Java lesen

Sheeraz Gul 12 Oktober 2023
  1. Datei aus Klassenpfad in Java lesen
  2. Verwenden Sie die Methode getResourceAsStream(), um Dateien aus Classpath in Java zu lesen
  3. Verwenden Sie die Methode getResource(), um Dateien aus Classpath in Java zu lesen
Datei aus Klassenpfad in Java lesen

Es gibt zwei Möglichkeiten, Dateien aus Classpath in Java zu lesen. Wir können die im Ressourcenordner vorhandene Datei als inputstream oder als URL-Format laden und dann tun, was wir wollen.

Dieses Tutorial zeigt, wie Sie eine Datei aus Classpath in Java lesen.

Datei aus Klassenpfad in Java lesen

Wie oben erwähnt, gibt es zwei Methoden, eine ist obj.getClass().getClassLoader().getResourceAsStream() und die andere ist obj.getClass().getClassLoader().getResource().

Diese Methoden können den Stream oder die URL oder die entsprechende Datei abrufen und die Datei dann lesen. Bevor wir diese Operationen anwenden, müssen wir zwei Punkte berücksichtigen:

  1. Wir müssen ein Objekt der Klasse public deklarieren, weil die Methode getClass() nicht statisch ist, also brauchen wir ein Objekt, um sie aufzurufen.
  2. Der Klassenpfad ist derselbe wie der, in dem das Beispiel ausgeführt wird, daher muss sich Ihre Datei im richtigen Pfad befinden.

Beginnen wir zunächst mit der Methode getResourceAsStream().

Verwenden Sie die Methode getResourceAsStream(), um Dateien aus Classpath in Java zu lesen

package delftstack;

import java.io.*;

public class Read_Files {
  public static void main(String[] args) throws Exception {
    // creating object of the class for getClass method
    Read_Files Class_Object = new Read_Files();

    String Resource_File = "delftstack.txt";

    System.out.println("Reading the file " + Resource_File + " from classpath");

    InputStream Input_Stream =
        Class_Object.getClass().getClassLoader().getResourceAsStream(Resource_File);
    InputStreamReader Input_Stream_Reader = new InputStreamReader(Input_Stream);
    BufferedReader reader = new BufferedReader(Input_Stream_Reader);

    String Content;

    while ((Content = reader.readLine()) != null) {
      System.out.println(Content);
    }
  }
}

Der obige Code verwendet die Methode getResourceAsStream, um den inputstream zu erhalten und liest dann die Datei aus dem Klassenpfad mit Hilfe von BufferedReader. Wenn sich die Datei nicht im Klassenpfad befindet, wird eine Nullzeigerausnahme zurückgegeben. Siehe Ausgabe:

Reading the file delftstack.txt from classpath
Hello This is delftstack.com
The best online platform for learning different programming languages.

Verwenden Sie die Methode getResource(), um Dateien aus Classpath in Java zu lesen

package delftstack;

import java.io.*;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.util.List;

public class Read_Files {
  public static void main(String[] args) throws Exception {
    // creating object of the class for getClass method
    Read_Files Class_Object = new Read_Files();

    String Resource_File = "delftstack.txt";
    System.out.println("Reading the file " + Resource_File + " from classpath");

    URL Class_URL = Class_Object.getClass().getClassLoader().getResource(Resource_File);
    File Class_File = new File(Class_URL.toURI());
    List<String> Content;
    Content = Files.readAllLines(Class_File.toPath(), StandardCharsets.UTF_8);

    for (String Line : Content) {
      System.out.println(Line);
    }
  }
}

Der obige Code verwendet die Methode getResource(), um die URL zum Klassenpfad zu erhalten und liest dann die Datei mit Hilfe der URL. Siehe Ausgabe:

Reading the file delftstack.txt from classpath
Hello This is delftstack.com
The best online platform for learning different programming languages.
Sheeraz Gul avatar Sheeraz Gul avatar

Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.

LinkedIn Facebook