SpringBoot项目中读取resource目录下的文件(六种方法)
在SpringBoot项目中,我们有多种方式来读取resource目录下的文件。
- 使用Spring框架的ResourceLoader
@Autowired
private ResourceLoader resourceLoader;
public void readUsingResourceLoader() throws IOException {
Resource resource = resourceLoader.getResource("classpath:test.txt");
String content = new String(Files.readAllBytes(Paths.get(resource.getURI())));
System.out.println(content);
}
- 使用Spring框架的Resource
public void readUsingResource() throws IOException {
Resource resource = new ClassPathResource("test.txt");
String content = new String(Files.readAllBytes(Paths.get(resource.getURI())));
System.out.println(content);
}
- 使用Class类的getResourceAsStream()方法
public void readUsingClass() throws IOException {
InputStream inputStream = getClass().getResourceAsStream("/test.txt");
String content = new String(inputStream.readAllBytes(), StandardCharsets.UTF_8);
System.out.println(content);
}
- 使用Class类的getResource()方法
public void readUsingClassUrl() throws IOException {
URL url = getClass().getResource("/test.txt");
String content = new String(Files.readAllBytes(Paths.get(url.getPath())), StandardCharsets.UTF_8);
System.out.println(content);
}
- 使用Spring框架的PathMatchingResourcePatternResolver
public void readUsingResolver() throws IOException {
Resource[] resources = new PathMatchingResourcePatternResolver().getResources("classpath:test.txt");
InputStream inputStream = resources[0].getInputStream();
String content = new String(inputStream.readAllBytes(), StandardCharsets.UTF_8);
System.out.println(content);
}
- 使用Spring框架的Spring Framework的ClassPathResource
public void readUsingSpringResource() throws IOException {
ClassPathResource classPathResource = new ClassPathResource("test.txt");
String content = new String(Files.readAllBytes(classPathResource.getFile().toPath()), StandardCharsets.UTF_8);
System.out.println(content);
}
以上六种方法都可以用来读取resource目录下的文件,你可以根据你的具体需求来选择使用哪一种方法。
评论已关闭