微服务-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");
注意如果用这个方式出现错误就看打包的文件是否能单独打开