【Android】数据存储-java IO流文件存储

  1.数据持久化:将在内存中的瞬时数据保存在存储设备中。瞬时数据:设备关机数据丢失。持久化技术提供一种机制能够让数据在瞬时状态和持久状态之间转换。java

  2.Android中简单的三种存储方式:文件存储、SharedPreference 存储以及数据库存储。数据库

    1.文件存储 :不对数据做任何处理,将数据原封不动地存储到文件中,适合存储一些简单的文本数据和二进制数据。  app

      a.将数据存储到文件中ui

         Context类提供了一个openFileOutput()方法,能够用于将数据存储到文件中。这个方法接收两个参数,第一个参数是文件名(文件名不能包含路径,默认路径为/data/data/<packagename>/files/),第二个参数是文件的操做模式,主要有MODE_PRIVATE 和 MODE_APPEND两种模式,前者是默认模式,当指定一样文件名时,所写入内容会覆盖掉原文件的内容,后者表示文件名相同时将内容追加到原文件内容后,不存在该文件则建立新文件。openFileOutput 方法返回一个FileOutputStream对象。spa

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();
}
}
}
/*
*步骤:
*1.经过openFileOutput()方法的到一个FIleOutputStream对象
*2.经过FileOutputStream对象构造出一个OutputStreamWriter对象
*3.经过OutputStreamWriter对象构造出BufferedWriter对象
*4.经过BufferedWriter将文本内容写入文件
*/

      b.从文件中读取数据code

        相似于将数据存储到文本中,Context类中提供了一个openFIleInput()方法,用于从文本中读取数据。这个方法只接收一个参数即要读取文件的文件名,系统在默认目录中找到这个文件后返回一个FilleInputStream对象,获得这个对象后经过java IO流就能够将数据读取出来了。对象

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();
}/**1.先经过openFileInput获取到FileInputStream对象*2.经过FileInputStream获取到InputStreamReader对象*3.经过InputSTreamReader得到BufferedReader对象*4.经过BufferedReader进行一行行读取,把文件中全部的文本内容所有读取出来并存在StringBuilder中*5.将读取到的内容返回*/
相关文章
相关标签/搜索