1、SharedPreference共享参数
<1> SharedPreferences是Android系统提供的一个通用的数据持久化框架,用于存储和读取key-value类型的原始基本数据类型对,目前支持String、int、long、float、boolean等基本类型的存储,对于自定义的对象数据类型,无法使用SharedPreferences来存储。
SharedPreferences主要用于存储系统的配置信息。例如上次登录的用户名,上次最后设置的配置信息(如:是否打开音效、是否使用振动,小游戏的玩家积分等)。当再次启动程序后依然保持原有设置。SharedPreferences用键值对方式存储,方便写入和读取。
<2>使用SharedPreferences的步骤
1、获取SharedPreferences对象
//文件名(可以不用写后缀名,会自动添加.xml) 操作模式:一般使用私有模式 //存储地址:dada/data/应用程序包名/shared_prefs/文件名.xml SharedPreferences sp = getSharedPreferences("first", MODE_PRIVATE);
2、调用edit()方法获取SharedPreferences.Editor
Editor edit = sp.edit();
3、通过SharedPreferences.Editor接口提供的put()方法对SharedPreferences进行更新
edit.putString("s", "存储的字符串");edit.putInt("i", 100);edit.putBoolean("b", true);
4、调用SharedPreferences.Editor的commit()方法,将更新提交到SharedPreferences中
edit.commit();
2、内部存储
<1>FileOutputStream Context.openFileOutput (String filename, int mode)
Context.MODE_APPEND
Context.MODE_PRIVATE
Context.MODE_WORLD_READABLE
Context.MODE_WORLD_WRITEABLE
<2>FileInputStream Context.openFileInput (String filename)
<3>File file = new File("data/data/com.example.day13_demo/text.txt")
FileOutputStream fos = new FileOutputStream(file);
FileInputStream inputStream = new FileInputStream(file);
<4>File file = new File(getFilesDir(), "text01.txt");
<5>File file = new File(getCacheDir(), "text.tetx");
3、扩展存储
<1>获取sdcard状态: int Environment.getExternalStorageState()
Environment.MEDIA_MOUNTED 介质已加载完
Environment.MEDIA_MOUNTED_READ_ONLY 介质已加载完,但是只读状态
Environment.MEDIA_CHECKING 正在检测介质
Environment.MEDIA_UNKNOWN 介质未知
Environment.MEDIA_UNMOUNTED 介质已卸载
<2>获取公共目录: File Environment.getExternalStoragePublicDirectory(String type)
Environment.DIRECTORY_MOVIES
Environment.DIRECTORY_MUSIC
Environment.DIRECTORY_DOCUMENTS
Environment.DIRECTORY_DOWNLOADS
Environment.DIRECTORY_PICTURES
Environment.DIRECTORY_RINGTONES
<3>获取私有目录:File Environment.getExternalStorageDirectory()
<4>获取下载缓存目录:File Environment.getDownloadCacheDirectory()
<5>读写SD卡的步骤
(1)先判断手机是否有sd卡:Environment.getExternalStorageState()
(2)获取sdcard的路径:Environment.getExternalStorageDirectory()
(3)清单文件中设置读写sdcard的权限
(4)执行读写操作(基本IO流操作
(5) 根目录下有sdcard,但是没东西是个快捷方式(2.2之前)。2.2之后在mnt/sdcard 4.3之后在storage/sdcard)