如何在Play Framework> 2.6中读取资源文件?

时间:2018-04-06 12:50:07

标签: playframework-2.6

此问题的所有答案都与2.6之前的播放框架有关。现在,似乎我需要在我的应用程序中注入一个环境,但即便如此,我也什么也得不到。

我想在我的应用程序根目录中读取conf / i18n中的文件。我正在做以下事情:

@Singleton
class Application @Inject() (configuration: play.api.Configuration, assets: AssetsFinder, env: play.api.Environment) extends InjectedController {
    var root = System.getProperty("user.dir")
    var folder = new File(root + "/conf/i18n");
    var listOfFiles = folder.listFiles();
    val i18n = for {
      file <- listOfFiles
      filename = file.getName if filename.endsWith(".json")
      content = env.resourceAsStream("/conf/i18n/" + filename) match {
          case Some(stream) => Source.fromInputStream(stream).getLines.mkString
          case None => ""
      }
   } yield Map(filename.dropRight(".json".length) -> Json.parse(content))

}

但是resourceAsStream的结果始终为None。

如果我这样做,它会起作用:

val i18n = for {
    file <- listOfFiles
    filename = file.getName if filename.endsWith(".json")
    content = Source.fromFile(folder + "/" + filename)("UTF-8").getLines.mkString
} yield Map(filename.dropRight(".json".length) -> Json.parse(content)) 

有什么想法吗?

0 个答案:

没有答案