数据的存储方式的使用

版权声明:转载请申明出处,谢谢 https://blog.csdn.net/qq_35495763/article/details/86598692

update time :2019-1-22 author:要你名三千又三千 type: 学习笔记

概念

  1. 持久化技术
    数据的持久化:就是将那些内存中的瞬时数据保存到存储设备中,
    保证机器关机的情况下,数据不丢失。
    三种方式实现
    1.文件存储、SharedPreference存储、数据库存储

方式一

文件存储

  1. 适合存储一些简单的文本文件或者二进制数据。
  2. 文件 名不可以包含路径,默认的存储方式到data/data/<包名>/files/
  3. 操作模式:MODE_PRIVATE:覆盖原文,MODE_APPEND:添加内容
  4. DDMS 的 File Explorer 来查看一下文件位置
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 对象,然后再借助它构建出一个
OutputStreamWriter 对象,接着再使用 OutputStreamWriter 构建出一个 BufferedWriter 对象,
这样你就可以通过 BufferedWriter 来将文本内容写入到文件中了

使用原始的Java方式读取文件内容

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();
}

使用SharedPreference 存储

  1. 键值对的方式存储数据
  2. 支持多种数据类型的存储方式
  3. 默认的存储目录:在/data/data//shared_prefs/目录
  4. 操作模式:MODE_PRIVATE ,MODE_MULTI_PROCESS(用于多进程读写)
  5. 两种方式:context 的getSharedPreference(文件名,操作模式)方式,Activity 的getPreference(操作模式)方法(默认文件名为当前活动的名称)

三步实现。

  1. 调用 SharedPreferences 对象的 edit()方法来获取一SharedPreferences.Editor 对象。
  2. 向 SharedPreferences.Editor 对象中添加数据,比如添加一个布尔型数据就使用putBoolean 方法,添加一个字符串则使用 putString()方法,以此类推。
  3. 调用 commit()方法将添加的数据提交,从而完成数据存储操作
SharedPreferences.Editor editor = getSharedPreferences("data",
MODE_PRIVATE).edit();
editor.putString("name", "Tom");
editor.putInt("age", 28);
editor.putBoolean("married", false);
editor.commit();

如何获取存储的数据的获取方法

SharedPreferences pref = getSharedPreferences("data",MODE_PRIVATE);
	String name = pref.getString("name", "");
	int age = pref.getInt("age", 0);
	boolean married = pref.getBoolean("married", false);
		Log.d("MainActivity", "name is " + name);
		Log.d("MainActivity", "age is " + age);
		Log.d("MainActivity", "married is " + married);

使用SQLite数据库存储数据

简介:
SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了
关键字:数据库、嵌入式
补充:
litePal
litePal:一个Android库,让开发人员使用SQLite数据库
开源的Android数据库框架,采用对象关系映射(ORM)模式,将常用的数据库功能进行封装,可以不用写一行SQL语句就可以完成创建表、增删改查的操作。
关键字:对象关系映射(ORM),功能封装。

猜你喜欢

转载自blog.csdn.net/qq_35495763/article/details/86598692