Android数据存储操作

数据存储

一:SharedPreferences:是android提供用来存储一些简单的配置信息的一种机制。比如一些默认的欢迎语,用户名、密码等

它以键值对的方式存储,可以很方便的写入和读取

SharedPreferences是以的XML格式以文件的方式自动保存的。在DDMS中的File Explorer中展开到/data/data/<package name>/shared_prefs可以找到

二:文件存储——谁的文件,谁主宰

Android中提供了:openFileInput和openFileOutput方法读取设备上的文件。如下:

String FILE_NAME = "tempfile.tep"  //确定要操作的文件的文件名

FileOutputStream fos = openFileOutput(FILE_NAME, Context.MODE_PRIVATE);  //初始化。如果要附加内容则:Context.MODE_APPEND

FileInputStream fis = openFileInput(FILE_NAME)  //创建写入流

使用openFileOutput 创建的文件只能被其调用的文件使用,其他应用无法读取此文件。如果需要在不同的应用间共享数据,则需要使用Content_Provider

注:如果你需要一些额外的资源文件,例如一些用来测试你音乐播放程序的MP3。可以讲这些文件放到/res/raw/下。然后可以使用getResource方法获取资源,以openRawResource方法打开这个文件。实现代码:

Resources myResources = getResources();

InputStream myFile = myResources.openRawResource(R.raw.filename);  //filename不需要带后缀名

三:SqLite数据库

是一个轻量级的嵌入式数据库。

1:SQLiteDatabase:一个SQLiteDatabase的实例代表了一个SQLite数据库。通过SQLiteDatabase的实例的各种方法,可以执行sql语句,对数据库进行CRUD等操作。数据库对一个应用来说是私有的,并且在应用当中数据库的名字也是唯一的

SQLiteOpenHelper:根据名字,我们可以看出这是一个辅助类。主要生成一个数据库,并对数据库的版本进行管理。当在程序中调用getWriteableDatabase或getReadableDatabase方法时,如果没有数据库将自动创建。

2:SQLiteOpenHelper是一个抽象类。我们通常需要继承它,并实现它的三个方法:

onCreate(SQLiteDatabase):在数据库第一次生成的时候会调用这个方法。一般我们在这个方法里面生成数据库表

onUpgrade(SQLiteDatabase, int, int):当数据库需要升级时,Android会主动调用这个方法

onOpen(SQLiteDatabase):这是当打开数据库时的回调函数。很少用到

3:Cursor:Cursor是在Android中一个非常有用的接口。通过Cursor我们可以对从数据库查询出来的结果集进行随机的读写访问。

4:ContentValues类:ContentValues类和Hashtable比较类似。负责存储一些名值对。但其key是String类型,而值是基本类型

四:ContentProvider——我的数据你来用

注意:数据在Android程序中是私用的

一个ContentProvider类实现了一组标准的方法接口,从而能够让其他的应用保存或者读取此ContentProvider的各种类型数据

也就是说:一个程序可以通过实现一个ContentProvider抽象接口将自己的数据暴露出去

常见接口:query、inset、update、delete

ContentResolver:外界的程序可以通过ContentResolver接口可以访问ContentProvider提供的数据。

在Activity当中通过getContentResolver()可以得到当前应用的ContentResolver的实例。

ContentResolver提供的接口和ContentResolver中需要实现的接口对应,主要接口有:query、inset、update、delete

五:网络存储

原文地址:https://www.cnblogs.com/mumue/p/2489139.html