HOWTO · Java

Java でクラスパスからファイルを読み取る

このチュートリアルでは、Java でクラスパスからファイルを読み取る方法を示します。

Java でクラスパスからファイルを読み取る方法は 2つあります。 リソース フォルダにあるファイルを inputstream としてロードするか、URL 形式でロードしてから、必要なことを実行できます。

このチュートリアルでは、Java でクラスパスからファイルを読み取る方法を示します。

Java でクラスパスからファイルを読み取る

前述のように、メソッドは 2つあり、1つは obj.getClass().getClassLoader().getResourceAsStream() で、もう 1つは obj.getClass().getClassLoader().getResource() です。

これらのメソッドは、ストリーム、URL、または対応するファイルを取得して、ファイルを読み取ることができます。 これらの操作を適用する前に、次の 2つの点を考慮する必要があります。

  1. getClass() メソッドは非静的であるため、public クラスのオブジェクトを宣言する必要があります。そのため、それを呼び出すオブジェクトが必要です。
  2. クラスパスはサンプルが実行されている場所と同じであるため、ファイルは正しいパスにある必要があります。

まず、getResourceAsStream() メソッドから始めましょう。

getResourceAsStream() メソッドを使用して 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);
    }
  }
}

上記のコードは、getResourceAsStream メソッドを使用して inputstream を取得し、BufferedReader を使用してクラスパスからファイルを読み取ります。 ファイルがクラスパスにない場合、null ポインター例外が返されます。 出力を参照してください:

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

getResource() メソッドを使用して、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);
    }
  }
}

上記のコードは、getResource() メソッドを使用してクラスパスへの URL を取得し、URL を使用してファイルを読み取ります。 出力を参照してください:

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