- 添加存储权限
<!--外部存储的写权限-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!--外部存储的读权限-->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
2.逻辑部分
- 定义变量
private static final int REQUEST_EXTERNAL_STORAGE = 1;
private static String[] PERMISSIONS_STORAGE = {
"android.permission.READ_EXTERNAL_STORAGE",
"android.permission.WRITE_EXTERNAL_STORAGE" };
- 申请代码
try {
//检测是否有写的权限
int permission = ActivityCompat.checkSelfPermission(activity,
"android.permission.WRITE_EXTERNAL_STORAGE");
if (permission != PackageManager.PERMISSION_GRANTED) {
// 没有写的权限,去申请写的权限,申请权限
ActivityCompat.requestPermissions(activity,PERMISSIONS_STORAGE,REQUEST_EXTERNAL_STORAGE);
}
} catch (Exception e) {
e.printStackTrace();
}
- 重写onRequestPermissionsResult方法,监听用户点击了同意还是拒绝
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if(requestCode==REQUEST_EXTERNAL_STORAGE){
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
//请求成功,获得权限,存储到本地
localStorage1()
} else {
//请求被拒绝,提示用户
}
}
}
- 在内部存储创建文件写入数据
//存储到本地
public void localStorage1(){
//获取外部存储路径
String file6=Environment.getExternalStoragePublicDirectory("").getAbsolutePath();
//通过文件字节输出流存储
try {
Log.d("外部存储路径",file6+"/index888");
String content="123456789";
//创建文件夹index888
File file9=new File(file6+"/index888");
if (!file9.exists()) {
boolean mkdirs = file9.mkdirs();
if (!mkdirs) {
Log.e("新建文件夹", "文件夹创建失败");
} else {
Log.e("新建文件夹", "创建成功");
//创建成功后新建一个index.txt,并写入内容
File file10=new File(file6+"/index888/index.txt");
file10.createNewFile();
//第二个参数的意思
//r 以只读的方式打开文本,也就意味着不能用write来操作文件
//rw 读操作和写操作都是允许的
//rws 每当进行写操作,同步的刷新到磁盘,刷新内容和元数据
//rwd 每当进行写操作,同步的刷新到磁盘,刷新内容
RandomAccessFile FileWrite= new RandomAccessFile(file10, "rwd");
FileWrite.seek(file10.length());//从什么位置开始写
FileWrite.write(content.getBytes());//写入数据
FileWrite.close();
}
}
}catch (Exception e){
e.printStackTrace();
Log.d("外部存储路径错误","222");
}
}
- 最终效果