Android三种存储方式

作者: dayang | 来源:发表于2016-12-06 20:40 被阅读166次
    一、SharedPreferences

    保存的数据在data/data/<package name>/shared_refs路径下
    创建SharedPreferences使用:

    • getSharedPreferences("文件名",访问权限)方法
    • Editor类进行SharePrerences编辑
    效果图
    Wifi_SharePreferenced.png
    public class MainActivity extends AppCompatActivity {
        Switch aSwitch;
        SharedPreferences sharedPreferences;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            aSwitch= (Switch) findViewById(R.id.wifiSwitch);
            sharedPreferences=getSharedPreferences("wifiStatus",MODE_PRIVATE);
            boolean status=sharedPreferences.getBoolean("status",false);
            aSwitch.setChecked(status);
            aSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
            SharedPreferences.Editor editor=sharedPreferences.edit();
            editor.putBoolean("status",b);
            editor.commit();
    }});}}
    
    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout 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"
    tools:context="cn.ucai.day06_12_5_data.MainActivity">
    <Switch
    android:id="@+id/wifiSwitch"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="wifi" />
    </RelativeLayout>
    
    二、文件存储方式

    随着应用消失的存储方式,在/data/data/<package name>/files,得到该目录下的输入输出流
    如果调试程序的机器为真机,目录的命名方式不太一样;

    javaFileOutputStream fos =openFileOutput("app.xml", MODE_PRIVATE);

    javaFileInputStream fis = openFileInput("app.xml");

    取得res文件下的文件夹app.xml文件


    资源文件目录.png

    javaInputStream inputStream = getResources().openRawResource(R.raw.app);

    三、sdcard方式
    • 一种是会随着应用卸载而被删除的sdcard目录文件
      目录为/sdcard/Android/data/<packagename>/files/<目录名>

    getExternaleFilesDir(String fileName)

    • 一种不会随着应用卸载而被删除的外部存储
      使用Enviroment类常用的方法:

    getExternalStorageDirectory();
    得到根目录** /storage/emulated/0**
    getExternalStoragePublicDirectory(String fileName)
    创建sdcard根目录下创建文件;
    getExternalStorageState()
    获取外部存储的状态;

    相关文章

      网友评论

        本文标题:Android三种存储方式

        本文链接:https://www.haomeiwen.com/subject/taskmttx.html