Home  >  Article  >  Java  >  How to read files under resources when SpringBoot is deployed to Linux

How to read files under resources when SpringBoot is deployed to Linux

王林
王林forward
2023-05-11 10:01:051487browse

Background

In daily business development, we usually put some fixed resource files in the resources folder, and obtain the files through relative paths when using them. It seems to be a very simple function
There seem to be some small pitfalls, such as the obtained file content is garbled or the file cannot be read.

Read garbled characters

This is very simple. Specify in the maven plug-in that the files to be obtained later will not be compiled and put into the package as they are


    org.apache.maven.plugins
    maven-resources-plugin
    
        
            sql
            xlsx
            xls
        
    

Read files

This is a small pit, and it took me an hour or two to find the problem. . . . . Despair

First list two absolutely unfeasible methods. The main reason is that there is no problem in the development environment, but it will not work in production

方法一:
File currentFolder = ResourceUtils.getFile("classpath:excelTemplate/model.xls");
方法二:
this.class.getResourceAsStream("excelTemplate/model.xls");

The following is a feasible method. But there are some pitfalls. . . . . . This pitfall is purely caused by accident

方法一:
Resource resource = new ClassPathResource("excelTemplate/model.xls");
InputStream resourceAsStream = resource.getInputStream();

方法二:
InputStream resourceAsStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("excelTemplate/model.xls");

These two methods are definitely easy to use. Some friends may have reported an error when obtaining the file. If an error also occurs, you can open it locally and try it now to see the file. Is there any damage.

It is definitely helpful to have pictures and the truth

How to read files under resources when SpringBoot is deployed to Linux

#Don’t misunderstand that the program is indeed running on Linux. In order to verify it, use the development tool Remote Screenshots for easy debugging

How to read files under resources when SpringBoot is deployed to Linux

The above is the detailed content of How to read files under resources when SpringBoot is deployed to Linux. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:yisu.com. If there is any infringement, please contact admin@php.cn delete