微服务-springboot 部署无法读取文件 进行处理

原因:本地用获取路径方式没问题,线上就出现打印 jar目录的问题。
 
第一种:
String classpath = this.getClass().getResource("/").getPath();

//拿到项目的文件,转换成文件输入流
ClassPathResource resource = new ClassPathResource("\\templates\\contract-template.ftl");
 //获取文件输入流
InputStream stream = resource.getInputStream(); 

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);

 configuration.setDirectoryForTemplateLoading(file);

 

第二种:能解决打包读取不到问题
 
InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("templates/basicSystemNetworkInfo.xlsx");

 

注意如果用这个方式出现错误就看打包的文件是否能单独打开
posted @ 2022-07-07 16:36  道行太浅  阅读(312)  评论(0编辑  收藏  举报