描述
- 读取根目录下的一个或者多个文件
- 读取类路径下的一个或者多个文件
参考文章
https://blog.csdn.net/elim168/article/details/78197596
核心代码
package com.it.demo2;
import org.springframework.core.io.Resource;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.util.Assert;
import java.io.IOException;
import java.io.InputStream;
public class Test {
/**
* 使用 PathMatchingResourcePatternResolver 读取 文件路径下的pom文件
* @throws IOException
*/
@org.junit.jupiter.api.Test
public void test1() throws IOException {
PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
Resource resource = resolver.getResource("file:pom.xml");
InputStream inputStream = resource.getInputStream();
byte[] con = new byte[1024];
int len = 0;
StringBuilder stringBuilder = new StringBuilder();
while ((len = inputStream.read(con)) > 0) {
stringBuilder.append(new String(con, 0, len));
}
System.out.println(stringBuilder.toString());
}
/**
* 从类路径下获取文件
* @throws IOException
*/
@org.junit.jupiter.api.Test
public void test2() throws IOException {
PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
// 方式一:获取 类 路径目录下的文件
// Resource resource = resolver.getResource("application.yml");
// 方式二:获取 类路径下 文件件中的文件
// Resource resource = resolver.getResource("META-INF/spring.factories");
// 方式三:获取 类路径下 文件件中的文件
// Resource resource = resolver.getResource("classpath:META-INF/spring.factories");
// 获取类路径下面所有的文件,-----使用通配符
Resource[] resources = resolver.getResources("classpath*:application*.yml");
Resource resource = null;
if(resources.length > 0) {
resource = resources[0];
}
InputStream inputStream = resource.getInputStream();
byte[] con = new byte[1024];
int len = 0;
StringBuilder stringBuilder = new StringBuilder();
while ((len = inputStream.read(con)) > 0) {
stringBuilder.append(new String(con, 0, len));
}
System.out.println(stringBuilder.toString());
}
}