实现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,打开这个文件.如果这个文件不能打开(例如,文件不存在 ...
随机推荐
- Windows Server 2008 R2 IIS重装
背景描述: 在一个刚睡醒午觉后的下午,忽然收到客户反馈,说昨天开始应用特别卡,各种卡各种不好用,忽然想到上次说要优化服务器IIS配置还一直没弄,然后迷迷糊糊的就开始进行客户现场服务器IIS配置优化,涉 ...
- Remove Duplicate Letters
316. Remove Duplicate Letters Total Accepted: 2367 Total Submissions: 12388 Difficulty: Medium Given ...
- AngularJS心得体会
AngularJS早些时候有过了解,知道这是一个JS的MVC框架,同类型的框架还有Backbone等.这次是由于项目需要,学习了两天的Angular后开始着手改之前的项目代码,这里大概说一下这一周学习 ...
- win7笔记本电脑实现wifi共享
前提条件:win 7系统,有wifi 同dos命令就可实现wifi共享 第一步: netsh wlan start hostednetwork pause 第二步: netsh wlan set ho ...
- Plugin is too old, please update to a more recent version, or set ANDROID_DAILY_OVERRIDE environment variable to “*****”
Plugin is too old, please update to a more recent version, or set ANDROID_DAILY_OVERRIDE environment ...
- java初学者必看经典
配置java环境变量: JAVA_HOME:配置JDK的目录 CLASSPATH:指定到哪里去找运行时需要用到的类代码(字节码) PATH:指定可执行程序的位置 LINUX系统(在" .ba ...
- javascript的stringFormat函数实现
写一个简单的stringFormat来给自己用 function stringFormat(format, args) { var formatData; if (arguments.length = ...
- js跑马灯效果
function nextPage() { /* 克隆第一张图片并添加到box后 box前移一张图片的距离动画 动画回调里把box的 ...
- 【关于360极速浏览器的xx极速模式自动切换到兼容模式】
原理上是可以的. 1 360基于Chromium 开源浏览器内核,它本身就是一个壳子.. 2 7.0之后的极速浏览器,不支持 它官方的那个声明标记.<meta name=”renderer” ...
- 电子科大POJ "孤单整数"
孤单整数 Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) C-sources: ...