实现JSON数据的存储和读取
事前准备:
//创建一个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数据的存储和读取的更多相关文章
- json数据的存储与读取
1. json数据格式: data = [ {"key1":"xxx","item":"ddd"}, {"k ...
- 在VC下采用ADO实现BLOB(Binary)数据的存储,读取,修改,删除。
在VC下采用ADO实现BLOB(Binary)数据的存储,读取,修改,删除. 作者:邵盛松 2009-09-05 前言 1关于的BLOB(Binary)数据的存储和读取功能主要参考了MSDN上的一篇& ...
- 使用 SharedPreferences 实现数据的存储和读取
在开发的过程中我们必须遇到的就是如何对用户的数据进行有效的存储以及读取.我们举个例子,现在我们使用app,当我们登陆一个账号的时候选择记住密码软件就会记住我们的账号以及密码,我们退出当前账号,就可以直 ...
- Numpy用于数组数据的存储和读取
Python的Numpy模块可用于存储和读取数据: 1.将一个数组存储为二进制文件 Numpy.save:将一个数组以.npy的格式保存为二进制文件 调用格式:numpy.save(file, arr ...
- json数据的key的读取和替换
读取json的key: /** * @Description: 递归读取所有的key * @Param: * @return: * @throws Exception * @author: hw * ...
- 保存json数据到本地和读取本地json数据
private void saveJson(JsonBean bean) { File file = new File(getFilesDir(), "json.txt"); Bu ...
- (第二章第四部分)TensorFlow框架之TFRecords数据的存储与读取
系列博客链接: (第二章第一部分)TensorFlow框架之文件读取流程:https://www.cnblogs.com/kongweisi/p/11050302.html (第二章第二部分)Tens ...
- AsyncHttpClient来完成网页源代码的显示功能,json数据在服务器端的读取还有安卓上的读取
一.使用AsyncHttpClient来完成网页源代码的显示功能: 首先.我们引入 步骤: 1.添加网络权限 2.判断网页地址是否为空 3.不为空的情况下创建客户端对象 4.处理get/post请求 ...
- php基础系列之 数据的存储和读取
·文件处理 ·写入一个文件 1,打开这个文件.如果这个文件不存在,需要先创建它 2,将数据写入这个文件 3,关闭这个文件 ·从一个文件读出数据 1,打开这个文件.如果这个文件不能打开(例如,文件不存在 ...
随机推荐
- Qt 五子棋
http://blog.csdn.net/baiding1123/article/details/17194535
- Ecsotre 参考
2.dbschema dbschema 字段属性 ‘type’ => ‘int unsigned’, //字段类型 ‘extra’ => ‘auto_increment’,//定义自增 ‘ ...
- 在Nginx上配置ThinkPHP项目
前段时间用Apache配合TP开发了一个小型网站,也算是我使用TP的第一次实战.我习惯使用pathinfo模式,本地运行一切正常,然而部署到服务器上时,由于对方使用的是Nginx,默认是不支持Thin ...
- PHP文件缓存类
<?php /** * @desc 文件缓存 */ class Cache{ const C_FILE = '/Runtime/'; private $dir = ''; const EXT = ...
- 使用notepad++学习python爬虫,print网页中文乱码问题
今天学习使用python爬虫的时候发现爬到的网页中文会乱码,一直网上搜索解决办法,一个一个试验过去,发现还是乱码,然后我就开始使用其它方法测试,用python自带的编辑器打开是正常的,发现是notep ...
- JavaBean之属性必须遵循命名规范
JavaBean中存在一些属性,今天写了一个Jsp的小例子.把Bean中的属性命名规范搞错了,具体的说属性的首字母大写了. 于是乎Jsp中读取属性时总是报错. javax.el.PropertyNot ...
- Azure上Linux VM防DDOS攻击:使用Apache mod_evasive
部署在云端的虚拟机和web服务,很容易受到DoS护着DDoS的服务攻击,让一些新上线的业务苦不堪言,当然各个云服务提供商也有不同层面DDOS的防护,然而由于防护粒度,攻击复杂度的关系,未必可以满足你的 ...
- nginx location的管理以及查找
关于nginx代码解析,我师兄雕梁的博客(http://simohayha.javaeye.com)有一系列的文章可以阅读.我这里将只介绍他博客里没有关注到的或者讲述不详细的,但是我个人又认为是ngi ...
- Inno Setup 系统托盘图标插件 TrayIconCtrl V1.5
原文 http://restools.hanzify.org/article.asp?id=93 V1.5 修正在某些 Windows 平台上(例如 Windows XP SP3)不能正常运行的问题. ...
- IT技术 | 让程序员抓狂的排序算法教学视频
点击「箭头所指处」可快速关注传智特刊微信号:CZTEKAN 原文地址:http://mp.weixin.qq.com/s?__biz=MjM5OTM4NDMyMg==&mid=20056820 ...