FileNotFoundException при использовании FileReader для поиска ресурса в динамическом проекте java ee6 - PullRequest
0 голосов
/ 09 марта 2011

Я получаю общеизвестное исключение FileNotFoundException, когда пытаюсь вызвать файл .txt, содержащий текст.Я использовал различные пути, но я не получил правильного.Вот как я называю это:

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

Как мне сказать моей программе, чтобы найти этот файл наиболее гибким способом

1 Ответ

0 голосов
/ 09 марта 2011

В одну сторону - доступ к файлу через контекст сервлета, например я использую в своем проекте 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"))));

так что вам нужно только получить контекст сервлета в нужном месте Другой способ - попробуйте получить доступ к файлу через classpath.

...