数据存储全方案
持久化技术简介 Android系统中主要提供了三种方式用于简单的实现数据持久化功能
文件存储SharedPReference存储数据库存储1.文件存储 将数据存储到文件中
Context类下有openFileOutput
方法,将数据存储到指定文件中,第一个参数指定文件名,不可以包含路径,所有的文件都是默认存储到/data/data/<package name>/files/
目录。第二个参数是文件操作模式,MODE_PRIVATE
和MODE_APPEND
openFileOutput
方法返回一个FileOutputStream
对象。
2.SharedPreferences存储 键值对存储
三种方法获取SharedPreferences对象 1.Context类中的getSharedPreferences()
方法,两个参数,第一个指定文件名,SharedPreferences
文件都是存放在/data/data/<package name>/shared_prefs/
目录下的。第二个参数用于指定操作模式,主要有两种模式可以选择,MODE_PRIVATE
和 MODE_MULTI_PROCESS
。 MODE_PRIVATE
仍然是默认的操作模式,和直接传入 0 效果是相同的,表示只有当前的应用程序才可以对这个SharedPreferences
文件进行读写。MODE_MULTI_PROCESS
则一般是用于会有多个线程中对同一个SharedPreferences
文件进行读写的情况。 2.Activity类中的getPreferences()
方法类名作为SharedPreferences的文件名 3.PreferenceManager类中的getDefaultSharedPreferences()
方法它接收一个Context参数,并自动使用当前应用程序的包名作为前缀来命名SharedPreferences文件。
存数据三步 1.调用SharedPreferences对象的edit()
方法来获取一个SharedPreferences.Editor
对象。 2.向SharedPreferences.Editor
对象中添加数据,比如添加一个布尔型数据就使用putBoolean
方法,添加一个字符串则使用putString()
方法,以此类推。 3.调用commit()
方法将添加的数据提交,从而完成数据存储操作。
从SharedPreferences读数据getXXX
方法,通过键值。
3.SQLite数据库存储
SQLiteOpenHelper抽象类,onCreate
和onUpgrade
两个方法必须在子类中重写。在这两个方法中实现 创建 和 升级 数据库的逻辑。
创建或打开一个数据库,并返回一个可对数据库进行读写的对象,磁盘空间已满则,read方法返回只读,write出现异常。
SQLiteOpenHelper中有两个构造方法可供重写,一般使用参数少一点的那个构造方法即可。这个构造方法中接收四个参数:第一个参数是Context。必须要有它才能对数据库进行操作;第二个参数是数据库名,创建数据库时使用的就是这里指定的名称;第三个参数允许我们在查询数据的时候返回一个自定义的Cursor,一般都是传null;第四个参数表示当前数据库的版本号,可用于对数据库进行升级操作,构建出SQLiteOpenHelper的实例之后,再调用它的getReadableDatabase()
或 getWritableDatabase()
方法就能够创建数据库了,数据库文件会存放在/data/data/<package name>/databases/
目录下。
SQLite中的数据类型
integer 表示整型real 表示浮点型text 表示文本类型blob 表示二进制类型通过adb检查数据库和表的情况adb shellcd 命令进入到/data/data/<package name>/databased/目录下,并使用ls 命令查看到该目录里的文件sqlite3 数据库名.table 查看表.schema 查看建表语句.exit 或 quit 退出数据库的编辑。db.execSQL("drop table if exists xxx");onCreate(db);版本号大于1。onUpgrade方法就会执行。
新闻热点
疑难解答