gpt4 book ai didi

JavaEE web - 从/src/main/resources 访问文件

转载 作者:行者123 更新时间:2023-11-30 11:18:34 24 4
gpt4 key购买 nike

我有一个正在编写的 Web 应用程序,我需要访问两个文件 (xlsx) 文件。我不确定我将使用哪个 Web 服务器(Tomcat、Glassfish 或其他)。

在我的应用程序中,我有一个文件位于:

/src/main/resources/Analysis_Template.xlsx

我正在尝试找出如何从代码访问它。

以下代码似乎在 WildFly 中“有点”起作用,但在 GlassFish 中不起作用

URI templateURI = this.getClass().getResource("/Analysis_template.xlsx").toURI();
File f = new File(templateURI.getPath());

虽然这段代码没有崩溃 f.canRead() 返回 false 所以我认为它可能没有工作。当我尝试在 GlassFish 下运行它时,事情并不顺利,它直接在第一行代码上崩溃并出现 java.lang.NullPointerException

任何建议我确信它非常明显我只是想念它。

--- 编辑和注释 --

[我最终得到了一个 WAR 文件]

WildFly 文件是:

/usr/local/opt/wildfly-as/libexec/standalone/deployments/fleetForecast-1.0-SNAPSHOT.war/WEB-INF/classes/ANALYSIS_template.xlsx

Glassfish 据我所知,netbeans 报告:就地部署

~/devel/fleetforecast/target/fleetForecast-1.0-SNAPSHOT

我在以下位置找到我的文件:

~/devel/fleetforecast/target/fleetForecast-1.0-SNAPSHOT/WEB-INF/classes/ANALYSIS_template.xlsx

我必须将此文件读入 File 对象以传递给一些代码以创建一组最终将提供给用户的 XLSX 文件。

最佳答案

这样试试。打包 war 文件时,/src/main/resources 中的所有文件都以 webapp 的根级别结束。我认为您还应该更喜欢使用 getResourceAsStream 而不是 getResource,因为后者只能从文件系统读取文件。

BufferedReader br = new BufferedReader(new InputStreamReader(getClass().getResourceAsStream("/Analysis_template.xlsx")));
// Now do something with br

希望对您有所帮助。:)

关于JavaEE web - 从/src/main/resources 访问文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23796268/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com