Android 常用的存储方式有3种。前两种基本在Activity 子类类中使用。
- 文件存储
- SharedPreferences 对象存储
- SQLite(在Android 讲解:存储 (2))
文件存储
文件存储分为字节存储,和字符存储。
在Activity 可以使用以下代码获取输入输出流。
输入流
openFileInput(fileName);
fileName 是文件的名称。
输出流
openFileOutput(fileName, MODE);
MODE 是打开的模式,在4.2之前有四种打开方式,现在有两个,其他两个容易引起安全漏洞。
MODE_PRIVATE(每次打开都新建),MODE_APPEND(追加内容)。
其他
在获取文件的输入输出流时,fileName 只能为文件的名称,不能带有路径。
文件的存储位置在:/data/data/<packageName>/files/fileName
SharedPrefernces 对象存储
SharedPrefernces 是Android 中的一个对象,通过这个对象,可以把数据持久化到XML文件中。
SharedPreferences sf = getPreferences(MODE_APPEND);
Editor editor = sf.edit();
//添加数据
editor.putString("username", "admin");
editor.putString("password", "123456");
editor.commit();
//获取数据
String username = sf.getString("username", null);
String password = sf.getString("password", null);
Log.i(tag, "username:" + username);
Log.i(tag, "password:" + password);
SharedPrefernces 对象有3 种方式获取:
- getPreferences(MODE);
- PreferenceManager.getDefaultSharedPreferences(Context);
- context.getSharedPrefernces(fileName, MODE);
1. getPreferences(MODE);
getPreferences(MODE)
MODE 获取方式,MODE_PRIVATE(每次打开都新建),MODE_APPEND(追加内容)。
当某个Activity 第一次使用这个方法时,则会在:/data/data/<packageName>/shared_prefs/fileName
生成一个文件。
2. PreferenceManager.getDefaultSharedPreferences(context);
PreferenceManager.getDefaultSharedPreferences(Context);
context 是一个Context 对象,一般为Activity 对象,此获取方法的获取模式是固定的MODE_PRIVATE。
生成的存储文件:/data/data/<packageName>/shared_prefs/fileName
。
fileName 是<packageName> + _preferences
,packageName 是应用程序包名。
4. context.getSharedPrefernces(fileName, MODE);
context.getSharedPrefernces(fileName, MODE);
是比较灵活的一个,可以通过文件名获取,并且也可以知道获取模式。