事前准备:

//创建一个Crime类
public class Crime {
private String mTitle;
private UUID mUUID;
private Date mDate;
private boolean isSolved; public Crime(){
mUUID = UUID.randomUUID();
mDate = new Date();
}
}
//创建CrimeLab类 以单例的方式存储一堆Crime
public class CrimeLab {
private static CrimeLab sCrimeLab; private ArrayList<Crime> mCrimeItems;
private Context mContext; private CrimeLab(Context context){
mContext = context;
mCrimeItems = new ArrayList<>();
for (int i=0; i<20; ++i){
Crime crime = new Crime();
crime.setTitle("#Crime"+i);
crime.setIsSolved(i % 2 == 0 ? true : false);
mCrimeItems.add(crime);
}//创建20个Crime
}
}

1.将Crime对象存储到File中并读取

前提知识:

1.context.openFileOuputStream();

http://blog.sina.com.cn/s/blog_6e5195850100zssn.html

//2.Criem类 创建 toJson()方法

public JsonObject toJson(){
JsonObject object = new JsonObject();
object.put("CrimeTitle",mTitle);
object.put("CrimeDate",mDate);
.....
return object;
}//将Crime转化成JsonObject

3.JsonToken
   将文本解析为json格式的类。

使用:

//创建JsonCrime
public JsonCrime{
private String mFileName = "...";
private Context mContext; public JsonCrime(String fileName,Context context){
mFileName = fileName;
mContext = context;
}
//将Crime对象的数据保存到File中
public saveCrime(ArrayList<Crime> crimeItems){
JsonArray jsonArray = new JsonArray();
for (Crime c:crimeItems){
jsonArray.put(c.toJson);
}//将全部的Crime放入jsonArray中
FileOutputStream fos = context.openFileOutput(String fileName,int mode);//取得文件的输出流
Writer writer = new OutputStreamWriter(fos);//字节流变成字符流
String data = jsonArray.toString;//重点:array可以转化成String类型
writer.write(data);//将jsonArray的信息写入到文件中
} //从File中读取数据
public ArrayList<Crime> loadCrime(){
FileInputStream is = mContext.openFileInputStream();
Reader reader = new InputStreamReader(is);//字节流转化成字符流
BufferedInputStream bis = new BufferedInputStream(reader);//套一层缓冲流
StringBuilder sb = new StringBuilder();
while((String str = bis.readLine()) != null){
sb.append(str);
}
JsonArray jsonArray =(JsonArray)new JsonToken(sb.toString).nextValue();
//将String类型转成json类型的方法
.....
}
}

实现JSON数据的存储和读取的更多相关文章

  1. json数据的存储与读取

    1.  json数据格式: data = [ {"key1":"xxx","item":"ddd"}, {"k ...

  2. 在VC下采用ADO实现BLOB(Binary)数据的存储,读取,修改,删除。

    在VC下采用ADO实现BLOB(Binary)数据的存储,读取,修改,删除. 作者:邵盛松 2009-09-05 前言 1关于的BLOB(Binary)数据的存储和读取功能主要参考了MSDN上的一篇& ...

  3. 使用 SharedPreferences 实现数据的存储和读取

    在开发的过程中我们必须遇到的就是如何对用户的数据进行有效的存储以及读取.我们举个例子,现在我们使用app,当我们登陆一个账号的时候选择记住密码软件就会记住我们的账号以及密码,我们退出当前账号,就可以直 ...

  4. Numpy用于数组数据的存储和读取

    Python的Numpy模块可用于存储和读取数据: 1.将一个数组存储为二进制文件 Numpy.save:将一个数组以.npy的格式保存为二进制文件 调用格式:numpy.save(file, arr ...

  5. json数据的key的读取和替换

    读取json的key: /** * @Description: 递归读取所有的key * @Param: * @return: * @throws Exception * @author: hw * ...

  6. 保存json数据到本地和读取本地json数据

    private void saveJson(JsonBean bean) { File file = new File(getFilesDir(), "json.txt"); Bu ...

  7. (第二章第四部分)TensorFlow框架之TFRecords数据的存储与读取

    系列博客链接: (第二章第一部分)TensorFlow框架之文件读取流程:https://www.cnblogs.com/kongweisi/p/11050302.html (第二章第二部分)Tens ...

  8. AsyncHttpClient来完成网页源代码的显示功能,json数据在服务器端的读取还有安卓上的读取

    一.使用AsyncHttpClient来完成网页源代码的显示功能: 首先.我们引入 步骤: 1.添加网络权限 2.判断网页地址是否为空 3.不为空的情况下创建客户端对象 4.处理get/post请求 ...

  9. php基础系列之 数据的存储和读取

    ·文件处理 ·写入一个文件 1,打开这个文件.如果这个文件不存在,需要先创建它 2,将数据写入这个文件 3,关闭这个文件 ·从一个文件读出数据 1,打开这个文件.如果这个文件不能打开(例如,文件不存在 ...

随机推荐

  1. mysql中,执行delete语句时出现Lock wait timeout exceeded问题

    问题描述: 当我插入一条记录时,在调用save方法的时候出现了异常(记录重复了),导致了后面的commit语句不能执行了.这时我在数据库中删除重复记录时发现该表已经被锁上了.即出现错误.但过了一会再次 ...

  2. tar.xz 文件如何解压

    XZ压缩最新压缩率之王 xz这个压缩可能很多都很陌生,不过您可知道xz是绝大数linux默认就带的一个压缩工具. 之前xz使用一直很少,所以几乎没有什么提起. 我是在下载phpmyadmin的时候看到 ...

  3. Fire Net--hdu1045

    Fire Net Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Su ...

  4. Nginx 变量漫谈(四)

    在设置了“取处理程序”的情况下,Nginx 变量也可以选择将其值容器用作缓存,这样在多次读取变量的时候,就只需要调用“取处理程序”计算一次.我们下面就来看一个这样的例子:     map $args  ...

  5. VirtualBox 上安装CentOS 6.5

    目标:1.在VirtualBox中安装CentOS2.配置虚拟机网络,实现:    a.主机联网后,宿机能够通过主机上网    b.不管主机联网与否,主机都能SSH登录宿机,并且主宿机能互相传送文件 ...

  6. Delphi与字符编码(实战篇)(MultiByteToWideChar会返回转换后的宽字符串长度)

    本文目标: 了解Delphi的字符串类型 字符编码的检测与转换 简体繁体转换 0. 导言 看完“.Net与字符编码(理论篇)”,我们明白了字符是自然语言中的最小单位,在存储和传输的过程中可以使用三种编 ...

  7. 必学100个常用linux命令大全

    1,echo “aa” > test.txt 和 echo “bb” >> test.txt //>将原文件清空,并且内容写入到文件中,>>将内容放到文件的尾部 2 ...

  8. C语言的本质(30)——C语言与汇编之ELF文件格式

    ELF(Executable and Linking Format)文件格式是一个开放标准,各种UNIX系统的可执行文件都采用ELF格式,ELF是一种对象文件的格式,用于定义不同类型的对象文件(Obj ...

  9. 2014.8.15模拟赛【公主的工作】&&bzoj1046[HAOI2007]上升序列

    bzoj题目是这样的 Description 对于一个给定的S={a1,a2,a3,…,an},若有P={ax1,ax2,ax3,…,axm},满足(x1 < x2 < … < xm ...

  10. PDF转word文档

    本文未对扫描版的PDF实验,但是可编辑PDF版本可以转换为word而且转换后的word是可编辑的. 1.从http://xiazai.zol.com.cn/detail/33/326858.shtml ...