java - 如何使用 FileInputStream 加载配置 xml 文件,但出现 FileNotFoundException

标签 java filenotfoundexception fileinputstream

我在 Eclipse 中的构建路径如下所示:

ProjectName
   -- WEB-INF
      -- classes
         -- myClass.class
      -- configs
         -- myConfig.xml

我当前配置的绝对路径如下所示:

C:\Development\Java\ProjectName\WEB-INF\configs\myConfig.xml

我正在使用 JAXB 进行绑定(bind),它需要一个 FileInputStream。 FileInputStream 需要是 XML 配置文件的流。但是,我不知道如何为我的配置获取 FileInputStream,而且我一直收到 FileNotFoundException。

我希望以这样一种方式加载此配置,即无需对配置路径进行硬编码,因为我计划开源该项目。我看到很多例子,其中有人只是硬编码完整的绝对路径,但我需要它是更灵活的“像”这样的东西:

new FileInputStream("/WEB-INF/configs/myConfig.xml");

谢谢!

最佳答案

我建议将 myConfig.xml 放在 WEB-INF/classes 目录中,并通过类加载器加载它,因为它在类路径中。在 servlet 上下文中调用 getResourceAsStream() 将返回一个您可以使用的 InputStream。它与上下文根相关,因此您可以选择该 WAR 并将其放在任何地方 - 您的代码仍然有效。

关于java - 如何使用 FileInputStream 加载配置 xml 文件,但出现 FileNotFoundException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2211991/

相关文章:

java - 在 Java 中替换数据的最快方法

java - 使用 SimpleCursorAdapter 保留 highlite 列表项

java中的java.lang.NullPointerexception

c# - 在 Debug模式下观察变量时出现 FileNotFoundException

java - 在 FileNotFoundException 的 catch 中嵌套 try-catch IOException

java - 如何本地化 java tomcat 网络服务器上的内容?

java - 打开失败 : EACCES (Permission denied)

java - 从ExternalFilesDir访问时出现随机Permission Denied错误

c++ - 每行读取 int 并显示百分比

java - 通过rest和html作为客户端上传文件