文章目录
- 前言
- 目标
- 关键字
- 一、实例
- 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分支
多留言多点赞你们的只支持是我坚持下去的动力,都支棱起来!!!