考点:

  1. 内部存储
    1. 缓冲区的内容写入文件
    2. 文件的内容写入缓冲区
  2. JSON解析
    1. 通过安卓内置的org.json包解析(该包提供了JSONObject和JSONArray两个类)
    2. 通过Google开源的Gson库解析 *必考
  3. SharedPreferences解析
    1. 用SharedPreferences存数据
    2. 用SharedPreferences读数据

一、内部存储

FileOutputStream fos = openFileOutput(String name, int mode);
FileInputStream fis = openFileInput(String name);
mode的值:
MODE_PRIVATE
MODE_WORLD_READABLE
MODE_WORLD_WRITABLE
MODE_APPEND

1.缓冲区的内容写入文件

  1. FileOutputStream fos;
  2. String fileName = "hh.txt";
  3. String content = "Hello,World!";
  4. try {
  5. fos = openFileOutput(fileName, MODE_PRIVATE);
  6. //创建文件输出流
  7. fos.write(content.getBytes());
  8. //以字节格式将content内容写入文件
  9. fos.close();
  10. //关闭文件
  11. }catch(Exception e){
  12. e.printStackTrace();
  13. }

2.文件的内容写入缓冲区

  1. FileInputStream fis;
  2. String content = "";
  3. String fileName = "hh.txt";
  4. try{
  5. fis = openFileInput(fileName);
  6. //创建输入流
  7. byte[] buffer = new byte[fis.available()];
  8. //创建字节数组作为缓冲区&获得文件长度
  9. fis.read(buffer);
  10. //文件内容读入数组中
  11. content = new String(buffer);
  12. //数组中内容转换为字符串读入content中
  13. fis.close()
  14. //关闭文件
  15. }catch(Exception e){
  16. e.printStackTrace();
  17. }

二、JSON解析

//要解析的JSON数据
{ "name" : "zhangsan", "age" : 27, "married" : true }//json1
[ 16,2,26 ] //json2

//1.通过安卓内置的org.json包解析, 该包提供了JSONObject和JSONArray两个类

  1. //对象
  2. JSONObject jsonObj = new JSONObject(json1);
  3. String name = jsonObj.optString("name");
  4. int age = jsonObj.optInt("age");
  5. boolean married = jsonObj.optBoolean("married");
  6. //数组
  7. int [] arr = new int[];
  8. JSONArray jsonArr = new (json2);
  9. for(int i=0; i<jsonArr.length(); i++){
  10. arr[i] = jsonArr.optInt(i);
  11. }

2.通过Google开源的Gson库解析 *必考

  1. //Gson gson = new Gson();
  2. // = gson.fromJson(json文件名, 类名);
  3. //对象
  4. Gson gson = new Gson();
  5. Person person = gson.fromJson(json1, person.class);
  6. //数组
  7. Gson gson = new Gson();
  8. Type listType = new TypeToken< List<Integer> >(){}.getType();
  9. List<Integer> ages = gson.fromJson(json2, listType);

三、SharedPreferences解析

用SharedPreferences存数据

  1. SharedPreferences sp = new SharedPreferences("name", MODE_PRIVATE);
  2. //创建SharedPreferences,输入参数(文件名,读写模式)
  3. SharedPreferences.Editor editor = sp.edit();
  4. //创建编辑器
  5. editor.putString("name","zhangsan");
  6. //用putXX(key,value)写入编辑器
  7. editor.putInt("age",27);
  8. editor.remove("key");
  9. //删除键对应的值
  10. editor.clear();
  11. //清空所有键值
  12. editor.commit();
  13. //必须提交才能保存编辑的数据

用SharedPreferences读数据

  1. SharedPreferences sp = new SharedPreferences("name", MODE_PRIVATE);
  2. String data = sp.getString("name",null);