HOWTO · Java
Java でクラスパスからファイルを読み取る
このチュートリアルでは、Java でクラスパスからファイルを読み取る方法を示します。
Java でクラスパスからファイルを読み取る方法は 2つあります。 リソース フォルダにあるファイルを inputstream としてロードするか、URL 形式でロードしてから、必要なことを実行できます。
このチュートリアルでは、Java でクラスパスからファイルを読み取る方法を示します。
Java でクラスパスからファイルを読み取る
前述のように、メソッドは 2つあり、1つは obj.getClass().getClassLoader().getResourceAsStream() で、もう 1つは obj.getClass().getClassLoader().getResource() です。
これらのメソッドは、ストリーム、URL、または対応するファイルを取得して、ファイルを読み取ることができます。 これらの操作を適用する前に、次の 2つの点を考慮する必要があります。
getClass()メソッドは非静的であるため、publicクラスのオブジェクトを宣言する必要があります。そのため、それを呼び出すオブジェクトが必要です。- クラスパスはサンプルが実行されている場所と同じであるため、ファイルは正しいパスにある必要があります。
まず、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.