【问题标题】:File path errors in eclipse? (Java Spring)eclipse中的文件路径错误? (Java 春天)
【发布时间】:2012-09-26 20:07:50
【问题描述】:
InputStream inp = new FileInputStream("src/main/resources/ExportHour.xls");

我的 Java Spring 项目的 src/main/resources 文件夹中有一个文件。 我试图在我的一个控制器中创建一个输入流,但是我总是得到一个找不到文件的异常。当我将路径位置更改为专门指向我机器上的文件时,它工作正常。

我有什么办法可以在 java 项目中找到该文件?

【问题讨论】:

    标签: java spring input io


    【解决方案1】:

    试试弹簧ClassPathResource

    InputStream inp = new ClassPathResource("ExportHour.xls").getInputStream();
    

    这是因为maven中的resources文件夹直接放在你的jar文件中,即ExportHours.xls文件放在你jar的根目录下。

    【讨论】:

      【解决方案2】:

      听起来您可以只是更改进程的工作目录 - 我怀疑它不是您认为的位置。例如,我建议你写

      File file = new File("src/main/resources/ExportHour.xls");
      

      然后登录file.getAbsolutePath(),查看它使用的确切文件。

      但是,您几乎可以肯定无论如何都使用FileInputStream。最好使用类似的东西:

      InputStream inp = Foo.class.getResourceAsStream("/ExportHour.xls");
      

      ...对于某些类Foo,它有一个包含您需要的资源的类加载器。

      (或者可能是/resources/ExportHour.xls",取决于您的构建结构。)

      这样,即使您将所有这些都构建到了一个 jar 文件中,您仍然可以打开该资源。

      【讨论】:

      • +1 在写答案的过程中,@Jon Skeet 用另一个完美的答案让我感到羞耻
      猜你喜欢
      • 2011-04-30
      • 2015-06-21
      • 1970-01-01
      • 2012-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多