Android 以JSON格式存储和加载本地文件
来源:互联网 发布:美工刀片厚 编辑:程序博客网 时间:2024/06/08 06:16
本章主要讲把一个对象以json格式保存在沙盒中,然后又从沙盒中将json数据读取出来。
每个应用的沙盒目录都是设备/data/data目录的子目录,且默认以应用包命名。例如,CriminalIntent应用的沙盒目录全路径为:/data/data/com.bignerdranch.android.criminalintent。
Q:什么时候保存数据合适?
适用于移动应用的一个普遍规则是:尽可能频繁的保存数据,尤其
是用户数据修改行为发生时。既然修改crime记录后的数据更新都
需要CrimeLab类处理,那么最靠谱的就是在该类中将数据保存到
文件中。
保存数据到文件中
public void saveCrimes(ArrayList<Crime> crimes) throws JSONException, IOException { JSONArray array = new JSONArray(); for (Crime c : crimes) array.put(c.toJSON()); Writer writer = null; try { OutputStream out = mContext.openFileOutput(mFilename, Context.MODE_PRIVATE); writer = new OutputStreamWriter(out); writer.write(array.toString()); } finally { if (writer != null) { writer.close(); } }}
从文件中读取数据
public ArrayList<Crime> loadCrimes() throws IOException, JSONException { ArrayList<Crime> crimes = new ArrayList<Crime>(); BufferedReader reader = null; try { InputStream in = mContext.openFileInput(mFilename); reader = new BufferedReader(new InputStreamReader(in)); StringBuilder jsonString = new StringBuilder(); String line = null; while ((line = reader.readLine()) != null) { jsonString.append(line); } JSONArray array = (JSONArray) new JSONTokener(jsonString.toString()) .nextValue(); for (int i = 0; i < array.length(); i++) { crimes.add(new Crime(array.getJSONObject(i))); } } catch (FileNotFoundException e) { } finally { if (reader != null) { reader.close(); } } return crimes;}
context提供的基本文件或目录处理方法
源代码
点击查看代码
0 0
- Android 以JSON格式存储和加载本地文件
- Android存储与加载JSON格式的本地文件
- Android存储和加载本地文件(内部存储设备)
- Android存储和加载本地文件(外部存储设备)
- Android学习之本地文件的存储与加载
- Android webview 加载本地文件
- android加载本地文件数据
- android webview 加载本地文件
- 如何获取表格中的数据并以json格式存储?
- 把json格式数据写入到本地文件
- Android本地文件存储,机身和外置sd卡
- Unity 中存储数据到JSON本地文件
- spark sql加载parquet格式和json格式数据
- 与android客户端以JSON格式进行数据通信
- IDEA(Android Studio) 以JSON格式覆盖toString() (非StringBuilder)
- Python 以txt格式保存和读取json数据
- Python 以mongo格式保存和读取json数据
- 存储json格式
- iOS图片圆角优化
- 如何在创业公司打拼?
- HTML5-查詢頁面
- [leetcode] 95. Unique Binary Search Trees II
- currentStyle与computedStyle
- Android 以JSON格式存储和加载本地文件
- OpenCV代码提取:dilate函数的实现
- 剑指Offer_52_正则表达式匹配
- 搜狐 自媒体 快站
- <<Android开发艺术探索>>读书笔记--Activity LaunchMode
- Android 监听应用的卸载与安装
- .net下的面向工控领域的远程方法调用(RMI)中间件,通信层实现
- 万能 Android 数据库导出Excal表代码
- 跟我一起写MakeFile