此问题的所有答案都与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))
有什么想法吗?