springboot中,如何从资源文件加载文件

写在前面

核心还是IO操作,主要包括以下两个

  • ResourceUtils
  • ClassPathResource

一、ResourceUtils

public JsonInformationHereAsReturnType getJsonContent() {
   

    File file = ResourceUtils.getFile("classpath:sample.json");
            //Read File Content
            String content = new String(Files.readAllBytes(file.toPath()));

    return content;
}

二、ClassPathResource

 @Before
    public void t1() {
   
        try {
   
            // 根据resource文件路径,生成文件
            ClassPathResource resource = new ClassPathResource("db/list.json");
            // 解析文件为指定编码的字符串
            String string = CharStreams.toString(new InputStreamReader(resource.getInputStream(), "UTF-8"));
            list = JSONArray.parseArray(string, Department.class);
        } catch (IOException e) {
   
            e.printStackTrace();
        }
    }

需要注意

在本地环境下,ResourceUtils 可以正常读取到我需要的文件,但是有时候,再 部署到 Linux 上时,会有
问题,ResourceUtils.getFile()不能嵌套在jar文件中,如果需要在 SpringBoot 项目中读取资源文件,最好使用 ClassPathResource.getInputStream()。