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;
    }


    }

    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    【内核】linux内核启动流程详细分析【转】
    【Linux】Linux基本命令扫盲【转】
    【Linux高级驱动】linux设备驱动模型之平台设备驱动机制【转】
    【Git】Git与GitHub 入门【转】
    usbnet驱动深入分析-usb虚拟网卡host端【转】
    USB设备被识别流程【转】
    LinuxUSB驱动程序调试--009:编写应用程序---验证协议【转】
    公积金条例久拖不改是谁在博弈?
    Android事件机制全然解析
    《Java并发编程实战》第二章 线程安全性 读书笔记
  • 原文地址:https://www.cnblogs.com/liyuanjinglyj/p/4656607.html
Copyright © 2011-2022 走看看