首页 > 解决方案 > 从资源文件夹中找不到文件

问题描述

我的 src/main/resources 文件夹中有一个文件,我在库函数中传递了该文件的位置,但没有读取该文件。

这是反编译战争时文件夹结构的外观。

我的 src/main/resources 文件夹(Intuit.cto.gateway.aws.preprod.jks)中有一个文件,我在库函数中传递了该文件的位置,但该文件未被读取。

这是反编译战争时文件夹结构的外观。 在此处输入图像描述

当我创建一个简单的 Maven 项目并尝试做同样的事情时,当我反编译我的示例项目时,我可以从 src/main/resources 访问该文件,它看起来像这样 在这里我可以访问这个文件

要访问该文件,我正在使用以下代码:

 public static void main(String args[])throws Exception{    
          FileReader fr=new FileReader("src/main/resources/filename");    
          int i;    
          while((i=fr.read())!=-1)    
          System.out.print((char)i);    
          fr.close();    
    }     

如何解决这个问题呢 ?

标签: java

解决方案


你不能按照你想要的方式去做。

您的路径很可能不正确。解压缩您的*.war文件,然后看到它src/main不再存在。

如果war文件没有被分解,你不能通过简单地使用传递给File*类的路径来访问它的内容,因为你的文件被打包到一个带有文件扩展名WAR的ZIP文件中的标准位置。

如果您的目的地需要File或传递给FileReader您的路径,则必须从 WAR 文件中读取此文件(使用ClassLoader.getResourceAsStream())并将其复制到临时位置,例如File.createTempFile()or System.getProperty("java.io.tmpdir")


推荐阅读