ルートからの絶対パスで指定したリソースファイルを取得するスニペット。
IOExceptionはそのまま外に投げているので必要があればcatchしてリカバリーまで書くこと。
Java
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.nio.charset.StandardCharsets; import java.util.stream.Collectors; public class JavaResource { public String javaResourceAccess(String fileName) throws IOException { final InputStream someStream = this.getClass().getClassLoader().getResourceAsStream(fileName); if (someStream == null) return null; try (BufferedReader br = new BufferedReader(new InputStreamReader(someStream, StandardCharsets.UTF_8))) { // Kotlin版のBufferedReader.readText()がsuffixに"\n"が付与されているため、合わせてつけている // 通常利用の場合は `Collectors.joining("\n")` でもよい return br.lines().collect(Collectors.joining("\n", "", "\n")); } } }
Kotlin
class KotlinResource { @Throws(IOException::class) fun kotlinResourceAccess(fileName : String) = this.javaClass .classLoader .getResourceAsStream(fileName) ?.bufferedReader() ?.use { it.readText() } }