码迷,mamicode.com
首页 > 移动开发 > 详细

安卓学习之持久化

时间:2016-08-28 23:52:58      阅读:217      评论:0      收藏:0      [点我收藏+]

标签:

什么叫数据持久化

  数据持久化就是指将那些内存中的瞬时数据保存到存储设备,设备可以是本机、数据库等。Android 系统中主要提供了三种方式用于简单地实现数据持久化功能,即文件存储、SharedPreference 存储以及数据库存储。

持久化操作

  1. 文件储存

  ( 1 ) 写入文件

  Context 类中提供了一个 openFileOutput ()方法,这个方法返回一个FileOutputStream对象。这个方法接收2个参数,第一个参数是文件名,这里的文件名不能包括路径,安卓中所有的文件都默认储存在/data/data/<packagename>/files/目录下的,第二个参数是文件的操作模式,主要有2种,MODE_PRIVATE 和 MODE_APPEND,MODE_PRIVATE是默认的模式,写入的内容会直接覆盖源文件中的内容; MODE_APPEND模式下如果该文件已经存在,那么直接往文件里面追加内容,不存在就创建文件。

  将文本内容储存到文件示例:

public void save() {
  String data = "Data to save";
  FileOutputStream out = null;
  BufferedWriter writer = null;
  try {
    out = openFileOutput("data", Context.MODE_PRIVATE);
    writer = new BufferedWriter(new OutputStreamWriter(out));
    writer.write(data);
  } catch (IOException e) {
    e.printStackTrace();
  } finally {
    try {
      if (writer != null) {
      writer.close();
    }
  } catch (IOException e) {
      e.printStackTrace();
    }
  }
}

我们先通过openFileOutput()获得一个FileOutputStream对象,然后使用FileOutputStream对象构建一个OutputStreamWriter对象,可以让字节流转化为字符流,然后使用OutputStreamWriter对象构建BufferedWriter获得BufferedWriter对象,这个对应的流使用了缓冲,能够提高输出效率,调用BufferedWriter的write方法写入数据。

  ( 2 ) 读取文件

public String load() {
  FileInputStream in = null;
  BufferedReader reader = null;
  StringBuilder content = new StringBuilder();
  try {
    in = openFileInput("data");
    reader = new BufferedReader(new InputStreamReader(in));
    String line = "";
    while ((line = reader.readLine()) != null) {
      content.append(line);
    }
  } catch (IOException e) {
    e.printStackTrace();
  } finally {
    if (reader != null) {
      try {
        reader.close();
      } catch (IOException e) {
        e.printStackTrace();
      }
    }
  }
  return content.toString();
}

 

对于文件的读取Context类提供了openFileInput()方法,获取一个FileInputStream对象,然后使用InputStreamReader构建得到一个InputStreamReader对象,把字节流转化为字符流。然后构建出BufferedReader对象。然后我们把读取的内容放到StringBuilder中,最后调用toString()方法返回数据。

 

 

未完。 

安卓学习之持久化

标签:

原文地址:http://www.cnblogs.com/sweat123/p/5816220.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!