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

浙公网安备 33010602011771号