java - 读取 war 文件中的文本文件

标签 java jsf

<分区>

我正在尝试从我的 war 存档中读取一个文本文件,并在运行时在 facelets 页面中显示内容。我的文件夹结构如下

+war archive > +resources > +email > +file.txt

我尝试使用以下代码读取 resources/email/file.txt 文件夹中的文件

File file = new File("/resources/email/file.txt");
BufferedReader reader = null;
try {
    reader = new BufferedReader(new FileReader(file));
} catch (FileNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}
StringBuffer buffer = new StringBuffer();
if (reader != null) {
    String line = reader.readLine();
    while (line != null) {
        buffer.append(line);
        line = reader.readLine();
// other lines of code

但是问题是,当我运行带有上述代码的方法时,将抛出 FileNotFoundException。我也试过用下面这行代码来获取文件,但是没有成功

File file = new File(FacesContext.getCurrentInstance()
        .getExternalContext().getRequestContextPath() + "/resources/email/file.txt");

我仍然得到 FileNotFoundException。这是怎么引起的,我该如何解决?

最佳答案

尝试以下:

   InputStream inputStream = 
      getClass().getClassLoader().getResourceAsStream("/resources/email/file.txt");
   BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream ));

关于java - 读取 war 文件中的文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13242782/

相关文章:

java - 使用java从表单中获取数据

java - 在类中序列化列表

java - Maven - 未能执行目标

java - Spring Security : Custom Login without backing bean, 仅使用 spring security 配置作为 j_spring_security_check

validation - 验证失败后 Primefaces JSF 更新不起作用

java - 错误 : No resource identifier found for attribute 'theme' in package in eclipse

java - 如何配置 TLS 连接以保护它们免受异常攻击 (CVE 2015-0204)?

ajax - 触发器 <cc :clientBehavior> event from <p:ajax> nested in composite

jsf - 绕过 JSF2 中的 bean 验证?

jsf - 使用f:convertNumber时,JSF隐藏负号