zoukankan      html  css  js  c++  java
  • android中Json数据保存方式

    package com.example.savejsonproject;


    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.PrintStream;
    import java.util.Date;


    import org.json.JSONArray;
    import org.json.JSONException;
    import org.json.JSONObject;


    import android.os.Bundle;
    import android.os.Environment;
    import android.app.Activity;
    import android.view.Menu;


    public class MainActivity extends Activity {
    private String company="宜昌静哥科技软件学院";
    private String address="湖北省宜昌市宜都市枝城镇";
    private String telephone="18671736137";
    private String[] namedata={"李元静","冯新尧","何帆"};
    private int[] agedata={21,22,21};
    private boolean[] marrieddata={true,false,true};
    private double[] salarydata={8000.0,8000.0,8000.0};
    private Date[] birthdaydata={new Date(),new Date(),new Date()};
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    super.setContentView(R.layout.activity_main);
    JSONObject allData=new JSONObject();   //建立最外面的JSONObject
    JSONArray array=new JSONArray();     //定义新的JSONArray对象
    for (int i = 0; i < namedata.length; i++) {    //For循环添加数据
    JSONObject temp=new JSONObject();    //创建一个新的JSONObject对象
    try {
    temp.put("name", namedata[i]);   //设置要保存的数据,直接子项的子项
    temp.put("age", agedata[i]);
    temp.put("merried", marrieddata[i]);
    temp.put("salary", salarydata[i]);
    temp.put("birthday", birthdaydata[i]);
    } catch (JSONException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    array.put(temp);
    }
    try {
    allData.put("persondata", array);   //保存所有数据
    allData.put("company", this.company);   //最外层数据
    allData.put("address", this.address);
    allData.put("telephone", this.telephone);
    } catch (JSONException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    if(!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){//判断是否存在SD卡
    return ;
    }
    File file=new File(Environment.getExternalStorageDirectory().toString()
    +File.separator+"mldndata"
    +File.separator+"json.txt");
    if(!file.getParentFile().exists()){//判断父文件是否存在,如果不存在则创建
    file.getParentFile().mkdirs();
    }
    PrintStream out=null;   //打印流
    try {
    out=new PrintStream(new FileOutputStream(file));  //实例化打印流对象 
    out.print(allData.toString());     //输出数据
    } catch (FileNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }finally{
    if(out!=null){    //如果打印流不为空,则关闭打印流
    out.close();
    }
    }
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
    }


    }

  • 相关阅读:
    【转】win8.1下安装ubuntu
    Codeforces 1025G Company Acquisitions (概率期望)
    Codeforces 997D Cycles in Product (点分治、DP计数)
    Codeforces 997E Good Subsegments (线段树)
    Codeforces 1188E Problem from Red Panda (计数)
    Codeforces 1284E New Year and Castle Building (计算几何)
    Codeforces 1322D Reality Show (DP)
    AtCoder AGC043C Giant Graph (图论、SG函数、FWT)
    Codeforces 1305F Kuroni and the Punishment (随机化)
    AtCoder AGC022E Median Replace (字符串、自动机、贪心、计数)
  • 原文地址:https://www.cnblogs.com/snake-hand/p/3184816.html
Copyright © 2011-2022 走看看