Context:
我有一个webapp,我想在文本框中提供自动完成的功能。我在我的web应用程序项目的资源文件夹中保存了一个“dictionary.txt”文件(下面提到的proj结构)。
Web app structure
mywebapp
|----src
|----main
|----java
|----resources
|----dictionary.txt
问题: 我试图在部署应用程序时在我的一个控制器的构造函数中加载“dictionary.txt”文件。但是,我正在获取FileNotFoundException,尽管文件放在那里。请参考以下源代码:
@Controller
MyCtrl {
public String dictionaryFile="dictionary.txt";
@Autowired
private MyAutocompleteDictTrie dictTrie;
public MyCtrl(){
DictionaryLoader.loadDictionary(dictTrie,dictionaryFile);
}
// remaining controller business code here
}
public class DictionaryLoader{
public static void loadDictionary(MyAutocompleteDictTrie trie,fileName){
BufferedReader br=null;
try{
br=new BufferedReader(new FileReader(fileName));//exception occurs here
// remaining business logic here
}
}
}
我不知道如何解决这个问题。一种可能的方法是使用MyCtrl.class.getResourceAsStream(fileName)
但是我不确定这是否会在应用程序部署之前发挥作用。