原因:本地用获取路径方式没问题,线上就出现打印 jar目录的问题。
第一种:
java;gutter:true;
String classpath = this.getClass().getResource("/").getPath();</p>
<p>//拿到项目的文件,转换成文件输入流
ClassPathResource resource = new ClassPathResource("\templates\contract-template.ftl");
//获取文件输入流
InputStream stream = resource.getInputStream();</p>
<p>File file = new File(classpath);//在本地就是本地,在linux就是linux
File file1 = new File(classpath+"contract-template.ftl");
try {
//将读取到的类容存储到临时文件中,
//后面就可以在liunx上用他自己的路径去处理文件了
FileUtils.copyInputStreamToFile(stream,file1);
} catch (IOException e) {
stream.close();
e.printStackTrace();
}
log.info("模板路径地址:{}",classpath);</p>
<p>configuration.setDirectoryForTemplateLoading(file);</p>
<pre><code>
第二种:能解决打包读取不到问题
;gutter:true;
InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("templates/basicSystemNetworkInfo.xlsx");
注意如果用这个方式出现错误就看打包的文件是否能单独打开
Original: https://www.cnblogs.com/daohangtaiqian/p/16455207.html
Author: 道行太浅
Title: 微服务-springboot 部署无法读取文件 进行处理
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/715199/
转载文章受原作者版权保护。转载请注明原作者出处!