当前位置: 首页 > 知识库问答 >
问题:

如何从项目目录外读取资源文件?

容远
2023-03-14

如果文件位置是资源文件夹,下面的代码工作正常,但是当文件位置在项目目录之外时,比如(c:\file.json),它就失败了。我们如何从项目目录之外加载文件。

    @Bean
    public UserInfo readFile() {
        String fileName="prop.json";
        ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
        File file = new File(classLoader.getResource(fileName).getFile());
        try {
             UserInfo info= new ObjectMapper(new JsonFactory()).readValue(file, UserInfo.class);
        } catch (Exception e) {
            
        }
        return info;
    }

共有1个答案

从阎宝
2023-03-14

您应该创建一个配置类来实现WebMvcConfigrer,并重写addResourceHadndler方法以向Spring上下文添加新资源。

@Configuration
@EnableWebMvc
public class MvcConfig implements WebMvcConfigurer{

    @Override
    public  void addResourceHandlers(ResourceHandlerRegistry registry) {
        
        // register you resource here
    }
    
}
 类似资料:
  • 我正在尝试从子项目中读取文件示例-dfx-sbi 文件位于src/main/resources文件夹内 那为什么文件没有加载呢?

  • 问题内容: 我正在寻找一种从给定的classpath目录中获取所有资源名称的列表的方法,例如。 例如,给定一个路径目录包含文件和子目录应该返回一个List 包含下列字符串: 。 它应该同时适用于文件系统和jar中的资源。 我知道我可以用Files,JarFiles和URLs编写一个简短的代码段,但是我不想重新发明轮子。我的问题是,鉴于现有的公共可用库,最快的实现方法是getResourceName

  • 问题内容: 我的资产文件夹中有一个文件…我该如何阅读? 现在我正在尝试: 但是它抛出了一个空指针异常… 该文件称为“原始文件”,它位于文件夹资产中 我尝试使用以下方法进行投射: 和 但是都失败了…有什么建议吗? 问题答案: 您可以使用打开输入流。 是该类的一种方法。 还要注意,您不应该重新创建字符缓冲区(,循环的最后一行)。

  • 问题内容: 我需要从Java WAR应用程序的类路径中读取文本文件。如何将其读取为InputStream。文件位于/ WEB-INF / classes /文件夹中,但是当我使用以下代码时,它仅返回null。 问题答案: 在其前面加上正斜杠以表示类路径的根: 或者,您可以使用来查找相对于上下文根的资源。因此,类将是。

  • 我对Vue和类星体都很陌生。因此,我正在尝试读取加载vue页面中的文件,特别是mounted()块中的脚本部分。 我已尝试使用以下方法加载该文件: 巴塞尔风险值=要求('../Assets/Congresl.zip'); 然而,我得到了以下错误: 无法编译。 ./src/assets/congresl.zip 1:2模块分析失败:意外字符“”(1:2)您可能需要适当的加载程序来处理此文件类型,当前

  • 问题内容: 我正在尝试从作为桌面应用程序运行的单独jar中访问jar文件中的XML文件。我可以获取所需文件的URL,但是当我将其传递给FileReader(作为字符串)时,我得到了FileNotFoundException,上面写着“文件名,目录名或卷标语法不正确”。 作为参考,我毫不费力地从同一个jar中读取图像资源,并将URL传递给ImageIcon构造函数。这似乎表明我用来获取URL的方法是