首先,在安卓中,6.0以上需要动态申请读写权限

 if (Build.VERSION.SDK_INT >= 23) {
            int REQUEST_CODE_CONTACT = 101;
            String[] permissions = {Manifest.permission.WRITE_EXTERNAL_STORAGE};
            //验证是否许可权限
            for (String str : permissions) {
                if (this.checkSelfPermission(str) != PackageManager.PERMISSION_GRANTED) {
                    //申请权限
                    this.requestPermissions(permissions, REQUEST_CODE_CONTACT);
                }
            }
        }

但开启权限后依然显示报错,排查后发现目录不对,需要读写的文件目录为data/data/xxx/xx.txt 但是该目录是不允许被读写的,改变路径后成功
引用一下博客的话,
我们在做安卓开过过程中,出于安全性,经常会将一些数据缓存至data/data私有文件夹内。程序都是一步步调试出来的,所以我们在调试过程中需要能直观的看到data/data私有文件夹内部详情。但是安卓系统本身是禁止所有人查看data/data的,即使是开发人员在使用开发者模式。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐