本文主要是介绍使用fastjson读取100M左右的json文件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
如果使用传统的读取文件,这样就相当于把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;}
这篇关于使用fastjson读取100M左右的json文件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!