安卓学习之持久化
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了安卓学习之持久化相关的知识,希望对你有一定的参考价值。
什么叫数据持久化
数据持久化就是指将那些内存中的瞬时数据保存到存储设备,设备可以是本机、数据库等。android 系统中主要提供了三种方式用于简单地实现数据持久化功能,即文件存储、SharedPreference 存储以及数据库存储。
持久化操作
-
文件储存
( 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()方法返回数据。
未完。
以上是关于安卓学习之持久化的主要内容,如果未能解决你的问题,请参考以下文章