文章目录

  • 前言
  • 目标
  • 关键字
  • 一、实例
  • 1 获取权限
  • 2 存放 文件
  • 3 提取文件信息
  • 三、使用及场景
  • 总结
  • 参考


前言

黑发不知勤学早,看看又是白头翁。


目标

存储文件到私用目录。有利于用户管理目录

关键字

super.getExternalCacheDir();
//私有目录类型
// {@link #DIRECTORY_MUSIC}, {@link #DIRECTORY_PODCASTS},
// {@link #DIRECTORY_RINGTONES}, {@link #DIRECTORY_ALARMS},
// {@link #DIRECTORY_NOTIFICATIONS}, {@link #DIRECTORY_PICTURES},
// {@link #DIRECTORY_MOVIES}, {@link #DIRECTORY_DOWNLOADS},
// {@link #DIRECTORY_DCIM}, or {@link #DIRECTORY_DOCUMENTS}. May not be null.
File externalFilesDir = super.getExternalFilesDir(Environment.DIRECTORY_MUSIC);

// 私用目录缓存
    File externalCacheDir = super.getExternalCacheDir();

一、实例

1 获取权限

//获取写入权限这里会弹窗 选择 allow
        int permisson = ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE);
        //PackageManager.PERMISSION_GRANTED  权限是否被获取
        if(permisson!=PackageManager.PERMISSION_GRANTED){
            //动态去申请权限
            ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},1);
        }

2 存放 文件

String path = Environment.getExternalStorageDirectory().getAbsolutePath() + "/Download/xjl.txt";
File f = new File(path);
                try {
                    if (!f.exists()) {
                        f.createNewFile();
                    }
                    //追加内容 true  默认不追加
                    FileOutputStream fos = new FileOutputStream(path,true);
                    String str = infoEdt.getText().toString();
                    fos.write(str.getBytes());
                }catch (IOException ioe){
                    ioe.printStackTrace();
                }

3 提取文件信息

//通过环境对象获取跟目录
        String path = Environment.getExternalStorageDirectory().getAbsolutePath() + "/Download/xjl.txt";
        try {
                    FileInputStream fis = new FileInputStream(path);
                    byte[] b = new byte[1024];
                    int len = fis.read(b);
                    String str2 = new String(b,0,len);
                    txt.setText(str2);
                } catch (FileNotFoundException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                }

三、使用及场景

1 存放应用产生的文件

总结

节约网络流量适用于任何数据

参考

git地址 :https://github.com/xiusan/MyApplication io分支
多留言多点赞你们的只支持是我坚持下去的动力,都支棱起来!!!