赞
踩
安卓的存储方式有5种,分别为:
- SharedPrefences;
- SQLite数据库
- 文件存储
- 网络存储
- ContentProvider
应用程序一般有一下几种类型:
file-普通的文件存储
database-数据库文件(.db文件)
sharedPreference-配置数据(.xml文件)
cache-图片缓存文件
应用数据的存放位置:
com.xxx.xxx 为自定义的包名
/data/data/com.xxx.xxx/cache - 应用内缓存(注:对应方法getCacheDir())
/data/data/com.xxx.xxx/databases - 应用内数据库
/data/data/com.xxx.xxx/shared_prefs - 应用内配置文件
/data/data/com.xxx.xxx/files - 应用内文件(注:对应方法getFilesDir())
SD卡的文件(开发者自定义的)
Android 提供了一个轻量级的存储类 SharedPreferences
,使用 XML
格式保存一些键值对数据
当我们的应用想要保存用户的一些偏好参数,比如是否自动登陆,是否记住账号密码,是否在 Wifi
下才能 联网等相关信息,我们这些信息为用户的偏好 设置
首先实例化一个
SharedPreferences
对象
SharedPreferences sp = mContext.getSharedPreferences("filename", Context.MODE_PRIVATE);
mContext
就是上下文,如果在Activity
可以使用Activity.this
或者getApplicationContext()
方法获得
filename
就是要保存的文件名,不要加上.xml
扩展名,因为系统自己会加上
Context.MODE_PRIVATE
私有的文件模式,一般都用Context.MODE_PRIVATE
调用
sp.edit()
获取sp
对象的写编辑器
SharedPreferences.Editor editor = sp.edit();
调用
editor.putXxxx()
写数据操作 ,Xxx
表示类型
editor.putString("username","imyufei")
调用
editor.commit()
提交和保存数据调用
sp.getXxxx()
去处Xxx
类型的数据调用
sp.remove(key)
可以删除key
对应的数据
其中文件读取的模式有4种, 其中2 种是废弃的:
模式 | 说明 |
---|---|
Context.MODE_PRIVATE | 默认的操作模式,表示该文件是私有文件,只能够被应用本身访问,写入的内容会覆盖原有的数据 |
Context.MODE_APPEND | 会检查文件是否存在,如果存在则把内容追加到文件末尾,否则新建一个文件进行写 |
Context.MODE_WORLD_READABLE 废弃 | 当前文件可以被其它 APP 读取 |
Context.MODE_WORLD_WRITEABLE废弃 | 当前文件可以被其它 APP 写入 |
这些模式可以使用 竖线(|) 叠加,比如
openFileOutput("site.txt",Context.MODE_WORLD_READABLE|MODE_WORLD_WRITEABLE)
Editor有如下主要重要方法:
- SharedPreferences.Editor clear():清空SharedPreferences里所有数据
- SharedPreferences.Editor putXxx(String key , xxxvalue): 向SharedPreferences存入指定key对应的数据,其中xxx 可以是boolean,float,int等各种基本类型据
- SharedPreferences.Editor remove(): 删除SharedPreferences中指定key对应的数据项
- boolean commit(): 当Editor编辑完成后,使用该方法提交修改
1. 自定义一个帮助读取的类
- package com.example.newdemo.storagefile;
-
- import android.content.Context;
- import android.content.SharedPreferences;
-
- public class SharedPrehelper {
-
- private Context context;
-
- public SharedPrehelper(Context context){
- this.context = context;
- }
-
- public void save(String key, String value){
- // 实例化一个 sp 对象
- SharedPreferences sharedPreferences = context.getSharedPreferences("my_sp", Context.MODE_PRIVATE);
-
- // 调用 sp.edit() 获取 sp 对象的写编辑器
- SharedPreferences.Editor editor = sharedPreferences.edit();
- editor.putString(key, value);
- editor.commit();
- }
-
- // 获取数据
- public String read(String key){
- SharedPreferences sharedPreferences = context.getSharedPreferences("my_sp", Context.MODE_PRIVATE);
- return sharedPreferences.getString(key, "");
- }
-
- }
2. 设置主activity
- package com.example.newdemo.storagefile;
-
- import androidx.appcompat.app.AppCompatActivity;
-
- import android.app.backup.SharedPreferencesBackupHelper;
- import android.content.Context;
- import android.os.Bundle;
- import android.view.View;
- import android.widget.Button;
- import android.widget.EditText;
- import android.widget.TextView;
-
- import com.example.newde
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。