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

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

王林
Release: 2023-05-11 10:01:05
forward
1610 people have browsed it

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

<plugin>
    <groupid>org.apache.maven.plugins</groupid>
    <artifactid>maven-resources-plugin</artifactid>
    <configuration>
        <nonfilteredfileextensions>
            <nonfilteredfileextension>sql</nonfilteredfileextension>
            <nonfilteredfileextension>xlsx</nonfilteredfileextension>
            <nonfilteredfileextension>xls</nonfilteredfileextension>
        </nonfilteredfileextensions>
    </configuration>
</plugin>
Copy after login

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");
Copy after login

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");
Copy after login

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!

Related labels:
source:yisu.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template