android第一行代码学习笔记——数据存储

持久化技术

数据持久化就是指将内存中的瞬时数据保存到存储设备中,android中主要提供了三种方式:文件存储,SharedPrefences存储以及数据库存储

文件存储

  1. 将数据存储到文件中:使用Context类的openFileOutput()方法获得一个FileOutputStream对象,然后使用java的IO流将数据存储到指定的文件中
  2. 该方法接收两个参数:第一个参数是文件名,第二个参数是文件的操作模式。

    文件名不可以包含路径,所有文件都是默认存储到/data/data/< package name>files/目录下的。
    文件操作模式有两种可以选:MODE_PRIVATE(默认的操作模式,若文件存在,则覆盖原文件中的内容)和MODE_APPEND(若文件存在,则追加写入,若不存在,则创建新文件)

  3. 从文件中读取数据:使用Context类的openFileInput()方法获得FileInputStream对象,然后使用java的IO流进行文件读取。

  4. 该方法只接受一个参数,即要读取的文件名,然后系统会自动到/data/data/< package name>files/文件下加载这个问价,并返回一个FileInputStream对象,然后通过java的IO流将数据读取出来。

SharedPreferences存储

  1. SharedPreferences使用键值对的方式来存储数据,当保存一条数据时需要给这条数据提供一个键,然后在读取数据时通过键将对应的值读取出来。SharedPreferences还支持多种不同的数据类型存储
  2. 要使用SharedPreferences来存储数据,必须先获取到SharedPreferences对象。android中提供了三种方法获取SharedPreferences对象:

    1. Context类中的getSharedPreferences()方法
      此方法接受两个参数:第一个参数指定SharedPreferences文件的名称,第二个参数用于指定操作模式,目前只有MODE_PRIVATE这一种模式,表示只有当前的应用程序才可以对这个SharedPreferences文件进行读写
    2. Activity类中的getPreferences()方法
      该方法和Context类的getSharedPreferences()方法类似,但他只接受一个操作模式参数,此方法会自动将当前活动的类名作为SharedPreferences的文件名
    3. PreferenceManager类中的getDefaultSharedPreferences()方法
      这是一个静态方法,它接受一个Context参数,并自动使用当前应用程序的包名作为前缀来命名SharedPreferences文件。
  3. 向SharedPreferences文件中存储数据,主要分为三步:

    1. 调用SharedPreferences对象的edit()方法来获取一个SharedPreferences.Editor对象
    2. 向SharedPreferences.Editor对象中调用putXxx()方法添加数据
    3. 调用apply()方法将添加的数据提交,从而完成数据存储操作
  4. 从SharedPreferences中读取数据,SharedPreferences对象中每种get方法都对应了SharedPreferences.Editor中的一种put方法。get方法接受两个参数,第一个参数是键,第二个参数是默认值,即当传入的键找不到对应的值时会返回该值。
SharedPreferences.Editor editor = getSharedPreferences("date", MODE_PRIVATE).edit();
editor.putInt("age", 19);
editor.apply();
---------------------
SharedPreferences sharedPreferences = getSharedPreferences("date", MODE_PRIVATE).edit();
Log.d("MainActivity", sharedPreferences.getInt("age", 0));

猜你喜欢

转载自blog.csdn.net/yjh728/article/details/82469759