在实际开发中我们必不可少的要上传和下载我们jar包或者war包中的文件,这个时候获取文件的路径就尤为重要,下面是我总结的几种获取不同目录下的文件的写法
$1.在对应的包下获取文件(定位到当前类所在的位置包,比如:src/main/java/com/XX/类)
fileName="test.xlsx";
InputStream is = this.getClass().getResourceAsStream(fileName);
$2.到对应的classes文件中获取(在jar包中是classes文件中,在我们项目中是resource文件中)
jar包中
项目中
获取方法
fileName="test.xlsx";
//要加/获取根目录下的classes文件
InputStream is = this.getClass().getResourceAsStream("/" + fileName);
//ClassLoader从整个classes文件夹找的,所以前面无需再加/。
InputStream is = this.getClass().getClassLoader().getResourceAsStream(fileName);
$3.获取webapp文件下的文件
//获取文件根目录,不同框架获取的方式不一样,可自由切换
String basePath = request.getSession().getServletContext().getRealPath("");
例:比如获取上面的check文件夹
String basePath = request.getSession().getServletContext().getRealPath("/check");
注:以上均在springboot框架下使用