java - FileInputStream 和 FileNotFoundException

标签 java io jasper-reports

我正在尝试使用以下 java 代码在相对路径中检索 jrxml 文件:

 String jasperFileName = "/web/WEB-INF/reports/MemberOrderListReport.jrxml";
 File report = new File(jasperFileName);
 FileInputStream fis = new FileInputStream(report);

但是,很可能我没有成功定义相对路径并在执行过程中收到 java.io.FileNotFoundException: 错误。

由于我对Java I/O操作经验不太丰富,所以我没有解决我的问题。欢迎任何帮助或想法。

最佳答案

您尝试将 jrxml 文件视为文件系统上的对象,但这不适用于 Web 应用程序内部。

您不知道应用程序将如何或在何处部署,因此您无法将文件指向它。

相反,您想使用 ServletContext 中的 getResourceAsStream。类似于:

String resourceName = "/WEB-INF/reports/MemberOrderListReport.jrxml"
InputStream is = getServletContext().getResourceAsStream(resourceName);

这就是你所追求的。

关于java - FileInputStream 和 FileNotFoundException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9681582/

相关文章:

java - 基于带有 Spring WebMVC REST Controller 的接受 header 的不同响应实体主体

java - 计算 catch block 中发生的异常数

jasper-reports - 如何删除 JasperReports 中文本字段之间的额外空间?

java - jasper 报告中显示多个条件水印

java - 接口(interface)没有构造函数,那怎么继承呢?

java - JAXB 中的解码错误

Java ArrayList 空指针异常

c - 尝试从用户读取输入整数,不想接受 C 中的字符

C 程序验证错误和跳过用户输入

java - 在 Spring roo 应用程序中显示 jasper 报告 HTML 页面(Web 应用程序)