文件目录:
JSON文件内容:
实例代码:
/**
* @author zl
* @since 2020/04/21
* */
@Slf4j
public class FileUtil {
public static String getInfo(){
File file = null;
try {
//使用Spring提供的ResourceUtils工具类获取Resource目录下的文件
//传入路径,这里是固定的:classpath:+文件目录(相对路径)
file = ResourceUtils.getFile("classpath:json/json.json");
} catch (FileNotFoundException e) {
e.printStackTrace();
}
//自定义的一个去读取文件的方法
String json =readJson(file, "UTF-8");
return json;
}
/**
* 去JSON文件里面的one对应的值,并转换为Map类型
* */
public static Map<String,String> getOneMap(){
Map<String,String> oneMap=new HashMap<>();
JSONObject object= JSON.parseObject(getInfo()).getJSONObject("one");
//循环转换
Iterator it =object.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<String, String> entry = (Map.Entry<String, String>) it.next();
oneMap.put(entry.getKey(), entry.getValue());
}
return oneMap;
}
public static String readJson(File file, String encoding) {
try {
InputStream is=new InputStream(file);
BufferedReader br = new BufferedReader(new InputStreamReader(is, encoding));
StringBuffer sb = new StringBuffer();
String line;
while((line = br.readLine()) != null) {
sb.append(line);
sb.append("\n");
}
br.close();
return sb.toString();
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
}
**
注意:在服务器其上要读取resource里面文件是ResourceUtils报错,使用 getClassLoader()方法去获取。
private static String json;
public static String getInfo(){
try {
InputStream stream = VerifyMapInfoUtil.class.getClassLoader().getResourceAsStream("json/json.json");
json = FileUtil.readText(stream, "UTF-8");
} catch (Exception e) {
e.printStackTrace();
}
return json;
}
public static String readText(InputStream is, String encoding) {
try {
BufferedReader br = new BufferedReader(new InputStreamReader(is, encoding));
StringBuffer sb = new StringBuffer();
String line;
while((line = br.readLine()) != null) {
sb.append(line);
sb.append("\n");
}
br.close();
return sb.toString();
} catch (Exception var5) {
var5.printStackTrace();
return null;
}
}
VerifyMapInfoUtil.class.getClassLoader().getResourceAsStream(“json/json.json”);
等于
getClass().getClassLoader().getResourceAsStream(“json/json.json”);
**