如果使用传统的读取文件,这样就相当于把100M的文件读取到内存,容易造成内存溢出,可以使用fastjson提供的
JSONReader进行读取使用
/**
* @param jsonPath json文件路径
* @param type 要格式化对象的class
* @param <T>
* @return
*/
public static <T> List<T> getOrderObjectsByClass(String jsonPath, Class<T> type){
LinkedList<T> returnList = new LinkedList<T>();
File file = new File(jsonPath);
InputStreamReader isr = null;
BufferedReader bufferedReader = null;
try {
isr = new InputStreamReader(new FileInputStream(file), "utf-8");
bufferedReader = new BufferedReader(isr);
JSONReader reader = new JSONReader(bufferedReader);
reader.startArray();
while (reader.hasNext()) {
T readObject = reader.readObject(type);
returnList.add(readObject);
}
reader.endArray();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
}finally{
try {
if(null != isr){
isr.close();
}
if(null != bufferedReader){
bufferedReader.close();
}
} catch (Exception e2) {
}
}
return returnList;
}