我正在努力访问stopwords.txt,这是我的StopWordRemover
班级正在使用的停用词列表。我可以使用它的相对路径" ./stopwords.txt
"来访问它。当我将StopWordRemover
作为独立类运行时,但是当我尝试在Play应用程序中使用它时,我会继续获取FileNotFound Exceptions。
我也尝试过:
^两者都没有。
我哪里错了?
相关方法:
private static void initStopWordList() {
if (stopWords == null) {
stopWordFilePath = "/stopwords.txt";
stopWords = new ArrayList<>();
try {
Stream<String> stream = Files.lines(Paths.get(stopWordFilePath));
stream.forEach(stopWords::add);
} catch (IOException e) {
e.printStackTrace();
}
}
}
目录路径:
app/
service/
StopWordRemover
stopwords.txt
答案 0 :(得分:0)
我把它放在config
文件夹中。
然后您需要将其作为资源而不是文件:
在Scala中,例如:
private val stream = getClass.getResourceAsStream("/stopwords.txt")
您可以尝试其他一些版本:
getClass.getResourceAsStream("stopwords.txt")
或Windows getClass.getResourceAsStream("\stopwords.txt")
从这里getting-a-resource-file-as-an-inputstream-in-playframework:
class Controller @Inject()(env: Environment, ...){
def readFile = Action { req =>
...
//if the path is bad, this will return null, so best to wrap in an Option
val inputStream = Option(env.classLoader.getResourceAsStream("/stopwords.txt"))
...
}
}