mavenプロジェクトのリソース配置とJavaのリソース読み込み
marvenプロジェクトのリソース配置
marvenプロジェクトはリソースを src/main/resources
配下に格納する
src -+- main/ -+- java/Sample/App.java | +- resources/test.txt
上記において mvn compile
すると、 target
ディレクトリ配下に以下のように配置される
ビルド後のリソース配置
target -+- classes -+- Sample -+- App.class | +- test.txt
Java のリソース読み込み
Javaのリソース読み込みシステムは Class.getResource(ファイル名)
もしくは Class.getResourceAsStream(ファイル名)
メソッドで行う
package Sample; import java.net.URL; import java.nio.file.Files; import java.nio.file.Path; import java.io.BufferedReader; import java.util.stream.Collectors; import java.io.InputStream; import java.io.InputStreamReader; public class App { public static void main( String[] args ) throws Exception { System.out.println( "Hello World!" ); // 1. URLとして取得する方法 URL url = App.class.getResource("/test.txt"); System.out.println(Files.readString(Path.of(url.toURI()))); // 2. 直接バイトストリームとして読み込む方法 InputStream is = App.class.getResourceAsStream("/test.txt"); BufferedReader br = new BufferedReader(new InputStreamReader(is)); System.out.println(br.lines().collect(Collectors.joining())); } }