总结:
1.非静态方法
getClass().getClassLoader().getResourceAsStream("config.properties"))
2.静态方式
ClassName.class.getClassLoader().getResourceAsStream("config.properties"))
1.非静态方法调用
//在代码工程src子目录main目录下,有java和resources两个目录,
//在resources目录下,假若有projectData.json文件,读取方式如下,
//注意:要先编译,这样在与src并列的target目录的子目录classes下才有这个projectData.json文件
InputStream inputStream = this.getClass().getResourceAsStream("/projectData.json");
try {
BufferedReader br = new BufferedReader(new InputStreamReader(inputStream));
StringBuilder sb = new StringBuilder();
String line = br.readLine();
while (line != null) {
sb.append(line);
line = br.readLine();
}
String longJsonString = sb.toString();
//处理具体业务逻辑
} catch (IOException e) {
e.printStackTrace();
}

2.静态方法调用getResourceAsStream ,使用ClassName.class而不是getClass()
package com.mkyong;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
public class FileHelper {
public static void main(String[] args) {
System.out.println(getFilePathToSaveStatic());
}
public static String getFilePathToSaveStatic() {
Properties prop = new Properties();
String result = "";
try (InputStream inputStream = FileHelper.class
.getClassLoader().getResourceAsStream("config.properties")) {
prop.load(inputStream);
result = prop.getProperty("json.filepath");
} catch (IOException e) {
e.printStackTrace();
}
return result;
}
}
3.应用
3.1读文件
public class FileUtil {
public static String importFileData(String filePath) throws Exception {
InputStream inputStream = null;
try {
//1.非静态方法:
//getClass().getClassLoader().getResourceAsStream("config.properties"))
//2.静态方法
//ClassName.class.getClassLoader().getResourceAsStream("config.properties"))
inputStream = FileUtil.class.getResourceAsStream(filePath);
BufferedReader br = new BufferedReader(new InputStreamReader(inputStream));
StringBuilder sb = new StringBuilder();
String line = br.readLine();
while (line != null) {
sb.append(line);
line = br.readLine();
}
String longJsonString = sb.toString();
log.info("longJsonString=" + longJsonString);
return longJsonString;
} catch (IOException e) {
log.error(e.getMessage());
} finally {
if (Objects.nonNull(inputStream)) {
inputStream.close();
}
}
return null;
}
}
3.2JSONObject.parseArray解析并保存
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
String jsonContent = FileUtil.importFileData("/traffic_line.json");
/*
JSONArray jsonArray = JSONObject.parseArray(jsonContent);
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject obj = jsonArray.getJSONObject(i);
log.info("doProcessData=" + obj.toString());
}
*/
List<CityTrafficLine> poList = JSONArray.parseArray(jsonContent, CityTrafficLine.class);
cityTrafficLineDao.saveAll(poList);

2220

被折叠的 条评论
为什么被折叠?



