1 this.getClass().getResource(filepath)
当执行this.getClass().getResource("") 时,获取到的路径是调用方法所在类的路径。
当执行this.getClass().getResource("/") 时,获取到的路径是resources的路径,所有模块的resources路径都会扫描到,所以想使用此方法获取resources必须以"/" 开头
如果想直接获取resources下的文件流可用此方法可以使用getResourceAsStream()
例如:this.getClass().getResourceAsStream("/template/test.csv")
将会读取到resources路径下的template/test.csv文件
2 this.getClass().getClassLoader().getResource(filepath)
此方法会直接相对于resources根路径读取文件,不需要加"/"
例如:this.getClass().getResourceAsStream("template/test.csv")
将会读取到resources路径下的template/test.csv文件
同样的,如果想直接获取resources下的文件流,可以使用getResourceAsStream()
例如:this.getClass().getClassLoader().getResourceAsStream("/template/test.csv")
3 new ClassPathResource(filepath).getInputStream()
此方法依赖spring框架,此方法会直接相对于resources根路径读取文件,不需要加"/"
例如:new ClassPathResource("template/test.csv").getInputStream()
觉得有用,求点个赞!