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.
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>
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
#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
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!