当我尝试调用包含一些文本的.txt文件时,我得到了所有众所周知的FileNotFoundException。我使用了各种路径,但我找不到合适的路径。 以下是我称之为:
private String generateActivationLinkTemplate() {
String htmlText = "";
try {
Scanner scanner = new Scanner(new FileReader(
"/web/emailActivationTemplate.txt"));
while (scanner.hasNextLine()) {
htmlText += scanner.nextLine();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
return htmlText;
}
文件的完整路径如下所示:
C:\jee6workspace\BBS\WebContent\web\emailActivationTemplate.txt
我应该如何告诉我的程序以最灵活的方式查找此文件?
答案 0 :(得分:0)
一种方法 - 通过servlet上下文访问文件,例如:我在我的Wicket项目中使用
final ServletContext ctx = ((WebApplication) getApplication()).getServletContext();
final File reportFile = new File(ctx.getRealPath("/reports/pivotTable.jasper"));
在你的情况下
Scanner scanner = new Scanner(new FileReader(
new File(ctx.getRealPath("/web/emailActivationTemplate.txt"))));
因此您只需要在适当的位置获取servlet上下文 其他方法 - 尝试通过类路径访问文件。