SharedPreference
以xml的结构储存简单的数据,储存在data/data/程序包名/shared_prefs文件夹中
使用方式
创建对象的方式有三种
Context 的 getSharedPreferences()
Activity 的 getPreferences()
PreferenceManager 的 getDefaultSharedpreferences()
获取数据
sharedPrefs.getXXX()方法,如getInt(),getString()等
储存数据 获取Editor对象 sharedPrefs.edit();
存入数据 editor.putXXX()方法,如putInt()、putString()
提交要保存的数据 editor.commit()
我们通过路径找文件 看一下运行结果 路径我在上面已经提到了 我使用的是Genymotion测试
访问手机内部存储需要root权限才可以访问
内部存储
将数据保存在内存空间中,数据用户不能轻易访问的区域,访问需要root权限。存储在/data/data/程序包名/files文件夹下
使用方式
其使用还是要通过FileInputStream和FileOutputStream对文件File进行操作,只不过不是通过他们的构造方法来创建。
获取FileInputStream
FileInputStream fis = openFileInput(); (Activity的方法)
FileOuputStream fos = openFileOutput(); (Activity的方法)
文件File将会自动创建
外部SDCard存储
在操作sd卡的时候需要在清单文件中添加权限
将数据保存到SDCard卡中,任何程序都可以访问,用户也很容易查看、修改。
使用方式
通过FileInputStream和FileOutputStream对文件File进行操作。
SDCard操作类Environment 进行SDCard状态获取
Environment.getExternalStorageState(); 获取扩展卡状态
Environment.MEDIA_MOUNTED 安装的并可读写
Environment.MEDIA_MOUNTED_READ_ONLY 安装的但只读
Environment.MEDIA_REMOVED 移除的
获取常用文件夹路径
Environment.getExternalStorageDirectory(); 获取扩展卡根文件夹
这个路径在sd卡下自己写 找不到 只能轻轻说声加油~
贴一个小demo
运行效果
在edittext 输入文本点击写入按钮 点击读取显示到textview 重要的事情说三遍 加权限~加权限~加权限~
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:orientation="vertical"
tools:context="com.example.lesson15_data_storage.MainActivity">
<CheckBox
android:id="@+id/push"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="是否追加到原文件末尾"/>
<EditText
android:id="@+id/edit"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/text_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="显示文本"/>
<Button
android:id="@+id/inner_storage"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="保存文