在springboot中读取jar包中的文件,最简单的方法是使用ClassPathResource
类来读取。比如你在Resources中有一个名为1.txt的文件,那么读取的代码如下:
ClassPathResource resource = new ClassPathResource("1.txt");
try (InputStream inputStream = resource.getInputStream()) {
String result = new String(inputStream.readAllBytes());
} catch (IOException e) {
logger.error("读取失败");
}
上面的代码中,字符串result即为你要读取的1.txt的内容。
当然,上面的代码不只是读取txt文件,其他文件当然也可以。
ClassPathResource
是springboot封装的内部文件读取类,和java常用的File相比,功能单一了很多。假如你要读取的不是一个文件,而是多个文件、文件夹,那么使用ClassPathResource
就无法实现了。这个时候应该使用ResourcePatternUtils
,该类也是springboot提供的,专门用来批量读取、查找等等操作。具体使用方法可以参考之前我写的另一篇文章:《springboot使用ResourcePatternUtils模糊查询resources路径下的文件(类似File.listFiles)》