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;
}
}
版权声明:本文为博主原创文章,未经博主允许不得转载。
android中Json数据保存方式的更多相关文章
- android中的数据存取-方式一:preference(配置)
这种方式应该是用起来最简单的Android读写外部数据的方法了.他的用法基本上和J2SE(java.util.prefs.Preferences)中的用法一样,以一种简单. 透明的方式来保存一些用户个 ...
- 【转】android中的数据存取-方式一:preference(配置)
这种方式应该是用起来最简单的Android读写外部数据的方法了.他的用法基本上和J2SE(java.util.prefs.Preferences)中的用法一样,以一种简单. 透明的方式来保存一些用户个 ...
- Android中的数据保存
形式 Android的数据保存分为3种形式:file, SharedPreference, Database 文件 主要思想就是通过Context类中提供的openFileInput和openFile ...
- Android中Json数据读取与创建
一: Json的特性和在数据交互中的地位就不用说了,直接看案例. 首先在android studio中创建assets文件目录,用于存放Json数据文件,android studio 1.3 默认项 ...
- Android中Json数据读取与创建的方法
转自:http://www.jb51.net/article/70875.htm 首先介绍下JSON的定义,JSON是JavaScript Object Notation的缩写. 一种轻量级的数据交换 ...
- 67.Android中的数据存储总结
转载:http://mp.weixin.qq.com/s?__biz=MzIzMjE1Njg4Mw==&mid=2650117688&idx=1&sn=d6c73f9f04d0 ...
- Android中的数据存储
Android中的数据存储主要分为三种基本方法: 1.利用shared preferences存储一些轻量级的键值对数据. 2.传统文件系统. 3.利用SQLite的数据库管理系统. 对SharedP ...
- [ Android 五种数据存储方式之一 ] —— SharedPreferences存储数据
SharedPreferences类,它是一个轻量级的存储类,特别适合用于保存软件配置参数. 主要是保存一些常用的配置比如窗口状态,一般在Activity中 重载窗口状态onSaveInstanceS ...
- iOS中的数据持久化方式
iOS中的数据持久化方式,基本上有以下四种:属性列表.对象归档.SQLite3和Core Data. 1.属性列表 涉及到的主要类:NSUserDefaults,一般 [NSUserDefaults ...
随机推荐
- jquery页面加载的时候加载函数
http://blog.csdn.net/tjcyjd/article/details/6713474 jQuery 页面加载初始化的方法有3种 ,页面在加载的时候都会执行脚本,应该没什么区别,主要看 ...
- sql:[dbo].[smt_MES_RptProductDaily] 生产日报表
USE [ChangHongMES_904]GO/****** Object: StoredProcedure [dbo].[smt_MES_RptProductDaily] Script Date: ...
- ecshop收货人信息中修改手机号为必填
Ecshop 修改收货人信息 把电话改成选择填写 手机改为必填 (加强版) 1. 编辑根目录/js/utils.js 增加手机号码的正则表达式 参照Utils.isTel = function ( ...
- cocos2d-x 手电筒效果
转自:http://blog.csdn.net/xujiezhige/article/details/8448524# 常见的手电筒效果,可以通过CCRenderTexture来实现.主要是通过修改渲 ...
- cocos2d-x 图形绘制
转自:http://blog.csdn.net/zhy_cheng/article/details/8480048 图形绘制的话,在cocos2d-x自带的TestCpp里有,包括绘制点,直线,多边形 ...
- C#实现汉诺塔问题
汉诺塔的由来:汉诺塔是源自印度神话里的玩具.上帝创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上安大小顺序摞着64片黄金圆盘.上帝命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上.并且 ...
- C++ Caption
主题 1. 设置控件的标题文本 2. 获取控件的标题文本 Caption属性 取得一个窗体的标题(caption)文字,或者一个控件的内容 红色的部分就是 Caption 标题 Set ...
- JS调用Delphi编写的OCX控件
原文:http://www.mamicode.com/info-detail-471283.html 一.使用Delphi XE2编写OCX控件 生成OCX工程: 1.File-New-Other,在 ...
- Android中通过WebView控件实现与JavaScript方法相互调用的地图应用
在Android中通过WebView控件,可以实现要加载的页面与Android方法相互调用,我们要实现WebView中的addJavascriptInterface方法,这样html才能调用andro ...
- [原 -> 砖] C# IEnumerable<T>泛型取值
为什么要写这个?因为发现,很多人在读取泛型集合中Item的值时,使用的方法是 item.GetType().GetField("xxxxx").GetValue() 或类似的写法. ...