美文网首页
安卓常见数据存储

安卓常见数据存储

作者: 俗人彭jin | 来源:发表于2021-09-14 10:38 被阅读0次
    image.png

    SharedPreferences模式

    image.png
    ![image.png](https://img.haomeiwen.com/i12474760/8ab80938a1bdc110.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
    
    // 存储的操作 
     String strName =  editTextName.getText().toString();
                    String strPwd =  editTextPwd.getText().toString();
                    // SharedPreferences 读取
                    Log.e("strName",strName);
                    Log.e("passWord",strPwd);
                    if(strName.equals("admin") && strPwd.equals("123")) {
                        // 2.1  存储信息到SharedPreferences 参数1:参数名称,参数2: 参数模式
                        SharedPreferences SharedPreferences = getSharedPreferences("myName",MODE_PRIVATE);
                        // 2.2 获取editor对象
                        android.content.SharedPreferences.Editor editor = SharedPreferences.edit();
                        // 2.3.存储信息
                        editor.putString("userName",strName);
                        editor.putString("passWord",strPwd);
                        // 2.4 指定提交操作
                        editor.commit();
    

    找到存储的数据在哪里


    image.png
        // 获取数据操作
        // 获取参数
            SharedPreferences shared = getSharedPreferences("myName",MODE_PRIVATE);
            //获取参数的默认值
            String user =  shared.getString("userName","");
            String pwd = shared.getString("passWord","");
            editTextName.setText(user);
            editTextPwd.setText(pwd);
    

    外部存储

    image.png
    image.png
    // 点击按钮去写入文件和读取文件操作
        public void FnOperate(View view) {
            if(!isGrantExternalRW(this)){ // 动态授权
                return;
            }
            // Environment.getExternalStorageDirectory().getAbsolutePath() 绝对路径
            String path = Environment.getExternalStorageDirectory().getAbsolutePath()+"/pjtest.txt";
    //        Environment.getExternalStorageState().equals("mounted") // 是否有内存卡
            Log.e("TAG",path+Environment.getExternalStorageState().equals("mounted"));
            switch (view.getId()){
                case R.id.save:
                    File f = new File(path);
                    try {
                        if (!f.exists()) {
                            f.createNewFile();
                        }
    
                        FileOutputStream fos = new FileOutputStream(path,true);
                        String str = infoEdt.getText().toString();
                        fos.write(str.getBytes());
                    }catch (IOException ioe){
                        ioe.printStackTrace();
                    }
                case R.id.read:
                    // tex
                    try {
                        FileInputStream fis = new FileInputStream(path);
                        byte[] b = new byte[1024];
                        int len = fis.read(b);
                        String str2 = new String(b,0,len);
                        Log.e("str2",str2);
                        tex.setText(str2);
                    } catch (FileNotFoundException e) {
                        e.printStackTrace();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                    break;
            }
        }
    

    动态授权操作

    // 动态申请权限
       public static boolean isGrantExternalRW(Activity activity) {
           if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && activity.checkSelfPermission(
                   Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
               activity.requestPermissions(new String[]{
                       Manifest.permission.READ_EXTERNAL_STORAGE,
                       Manifest.permission.WRITE_EXTERNAL_STORAGE
               }, 1);
               return false;
           }
           return true;
       }
    
    image.png

    新版本存储地址

    image.png

    内部存储

    image.png
    image.png

    相关文章

      网友评论

          本文标题:安卓常见数据存储

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