クラスと同じ場所に置くファイル読込み(for java11)

ただのメモです。
テンプレートなど Java クラスと同じ場所に配置したファイルを読込む想定です。

java.io.Reader 取得

public Reader getFileRreader(Class<?> cls, String filename) throws IOException, URISyntaxException{
   return new FileReader(
      new File(ClassLoader.getSystemClassLoader().getResource(
            cls.getPackageName().replaceAll("\\.", "/") + "/" + filename).toURI()
      ), StandardCharsets.UTF_8);
}

String 取得

public String readStringFile(Class<?> cls, String filename) throws IOException, URISyntaxException{
   try(InputStream in = new FileInputStream(new File(ClassLoader.getSystemClassLoader()
      .getResource(cls.getPackageName().replaceAll("\\.", "/") + "/" + filename).toURI()));
   ){
      return new String(in.readAllBytes(), StandardCharsets.UTF_8);
   }
}