Android编程权威指南-第十七章挑战练习
来源:互联网 发布:上瘾网络剧欢快bgm 编辑:程序博客网 时间:2024/06/05 10:39
CriminalIntentJSONSerializer.java文件
package com.onevol.app;import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.io.OutputStreamWriter;import java.io.Writer;import java.util.ArrayList;import org.json.JSONArray;import org.json.JSONException;import org.json.JSONTokener;import android.content.Context;import android.os.Environment;public class CriminalIntentJSONSerializer { private Context mContext; private String mFilename; public CriminalIntentJSONSerializer(Context c, String f){ mContext = c; mFilename = f; } 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 = null; if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){//检测是否有sd卡 File sdCard = new File(Environment.getExternalStorageDirectory().getAbsolutePath(), mFilename);//获取sd卡的绝对路径,就是全部的路径。 out = new FileOutputStream(sdCard); }else{ 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 = null; if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){ File sdCard = new File(Environment.getExternalStorageDirectory().getAbsolutePath(), mFilename); in = new FileInputStream(sdCard); }else{ 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; }}
并在AndroidManifest.xml文件中声明权限
<uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
0 0
- Android编程权威指南-第十七章挑战练习
- 《Android编程权威指南》第二章练习的挑战
- Android编程权威指南-第5章:挑战练习
- Android编程权威指南:第十二章挑战练习第二个
- Android编程权威指南-第十六章挑战练习
- 《Android编程权威指南》第二版 第二章 挑战练习
- 《Android编程权威指南》第二版 第五章 挑战练习
- 《Android编程权威指南》第二版 第六章 挑战练习
- 《Android编程权威指南》第二版 第八章 挑战练习
- Android编程权威指南第三版挑战练习一
- Android编程权威指南第三版挑战练习二
- Android编程权威指南第三版挑战练习三
- Android编程权威指南:第21章挑战练习:有一个隐式intent
- Android编程权威指南(第2版)第1/2章中的挑战练习思路
- Android编程权威指南(第2版)—第2章挑战练习
- Android编程权威指南(第2版)—第6章挑战练习
- Android编程权威指南(第2版)—第5章挑战练习
- Android编程权威指南(第2版)—第8章挑战练习
- RTEMS-BBB(二):工具链安装
- Codeforces Round #302 (Div. 2) C. Writing Code dp
- 异步信号安全(可重入性)与线程安全
- 通过openURL启动第三方app并传参数
- Calendar Game(找规律+博弈)
- Android编程权威指南-第十七章挑战练习
- 论程序员的社会地位
- poj3150--Cellular Automaton(矩阵优化)
- POJ 2002 Squares
- 杭电1181变形课
- POJ 1330 Nearest Common Ancestors
- Leetcode编程题解
- UITableView中关于cell里的按钮被点击时如何确定是哪一个cell
- 反混淆后的.net文件编译