Leer archivo desde Classpath en Java

Sheeraz Gul 12 octubre 2023
  1. Leer archivo desde Classpath en Java
  2. Utilice el método getResourceAsStream() para leer archivos de Classpath en Java
  3. Utilice el método getResource() para leer archivos de Classpath en Java
Leer archivo desde Classpath en Java

Hay dos formas de leer archivos desde classpath en Java. Podemos cargar el archivo presente en la carpeta de recursos como inputstream o cargarlo como formato URL y luego hacer lo que queramos.

Este tutorial demuestra cómo leer un archivo de classpath en Java.

Leer archivo desde Classpath en Java

Como se mencionó anteriormente, hay dos métodos, uno es obj.getClass().getClassLoader().getResourceAsStream() y el otro es obj.getClass().getClassLoader().getResource().

Estos métodos pueden obtener la secuencia o URL o el archivo correspondiente y luego leer el archivo. Antes de aplicar estas operaciones, debemos considerar dos puntos:

  1. Tenemos que declarar un objeto de la clase public porque el método getClass() no es estático, por lo que necesitamos un objeto para llamarlo.
  2. El classpath es el mismo donde se ejecuta el ejemplo, por lo que su archivo debe estar en la ruta correcta.

Comencemos primero con el método getResourceAsStream().

Utilice el método getResourceAsStream() para leer archivos de Classpath en Java

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);
    }
  }
}

El código anterior usa el método getResourceAsStream para obtener el inputstream y luego lee el archivo desde el classpath con la ayuda de BufferedReader. Si el archivo no está en el classpath, devolverá una excepción de puntero nulo. Ver salida:

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

Utilice el método getResource() para leer archivos de Classpath en Java

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);
    }
  }
}

El código anterior utiliza el método getResource() para obtener la URL de classpath y luego leer el archivo con la ayuda de la URL. Ver salida:

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