java解析json文件(文件大小50M),需要计算json文件中第一层的记录数大小。如json文件:
[{"name":"帐号","package_name":"com.android.account","check_version":"1.2"},
{"name":"系统升级","package_name":"com.android.osupdate","check_version":"1.0"},]
大小为2.
网上找了下方法,都是读取文件内容放到string中,但是文件大小是50M,最大值是30000条记录,这种方法不可行吧?
请问有谁能帮忙解下。
public class Util {
public String ReadFile(String Path){
BufferedReader reader = null;
String laststr = "";
try{
FileInputStream fileInputStream = new FileInputStream(Path);
InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream, "UTF-8");
reader = new BufferedReader(inputStreamReader);
String tempString = null;
while((tempString = reader.readLine()) != null){
laststr += tempString;
}
reader.close();
}catch(IOException e){
e.printStackTrace();
}finally{
if(reader != null){
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return laststr;
}
}
(2)Test.java:
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
String JsonContext = new Util().ReadFile("D:\\test\\apkinfo.json");
JSONArray jsonArray = JSONArray.fromObject(JsonContext);
int size = jsonArray.size();
System.out.println("Size: " + size);
for(int i = 0; i < size; i++){
JSONObject jsonObject = jsonArray.getJSONObject(i);
System.out.println("[" + i + "]name=" + jsonObject.get("name"));
System.out.println("[" + i + "]package_name=" + jsonObject.get("package_name"));
System.out.println("[" + i + "]check_version=" + jsonObject.get("check_version"));
}
}
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。