Android(目录,存储,sdcard,文件权限)

Android(目录,存储,sdcard)

#Context
Context 可以理解成大工具类

通过上下文 可以访问跟当前应用相关的 全局信息(系统资源) 也可以访问当前应用的私有资源 和类

也可以做系统级的调用 比如 开启另外一个activity 发广播 开启服务

获取data/data/包名/ 目录

getFilesDir(); 操作的是 data/data/包名/files

openFileInput->FileInputStream
这两个方法获取的流实际上操作的就是getFilesDir()对应目录下的文件

openFileOutput->FileOutputStream

访问/data/data/包名 这个私有目录 一定要使用上下文获取路径

    //操作data/data/包名/files/目录下
    //1种
    File absoluteFile = new File(getFilesDir().getAbsolutePath()+File.separator+"123.txt");
    //2种
    try {
        FileOutputStream fileOutputStream = openFileOutput("456.txt", MODE_PRIVATE);
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    }

详细代码:

public static boolean saveInfobycontext(Context context,String username, String pwd) {
	//使用上下文获取应用相关私有路径
	try {
		FileOutputStream fos = context.openFileOutput("info2.txt", Context.MODE_PRIVATE);
		fos.write(info.getBytes());
		fos.close();
		return true;
} catch (Exception e) {
	e.printStackTrace();
		return false;
	}
}

 public static String[] readInfobyContext(Context context){
	try {
	FileInputStream fis = context.openFileInput("info2.txt");
		BufferedReader reader = new BufferedReader(new InputStreamReader(fis));
		return temp;
	} catch (Exception e) {
		e.printStackTrace();
	return null;
	}
}

openFileOutput(String name, int mode)

mode几种模式说明

  1. MODE_PRIVATE
    对应文件权限 -rw-rw---- 文件大小不变,覆盖之前的内容
  2. MODE_APPEND
    对应文件权限 -rw-rw---- 追加内容,不会覆盖之前的文件
  3. MODE_WORLD_READABLE
    对应文件权限 -rw-rw-r-- 其他人可以读
  4. MODE_WORLD_WRITEABLE
    对应文件权限 -rw-rw–w- 其他人可以写

获取sdcard卡目录

申明权限:

android:name=“android.permission.READ_EXTERNAL_STORAGE”

android:name=“android.permission.WRITE_EXTERNAL_STORAGE”

如何获取该路径?

//保存文件到sdcard卡
    //需要申请权限
    String absolutePath = Environment.getExternalStorageDirectory().getAbsolutePath();

    //获取外部存储状态 注意状态 是 MEDIA_MOUNTED 才代表sdcard可用
    String externalStorageState = Environment.getExternalStorageState();

//TODO 32图
在这里插入图片描述

获取sdcard卡大小

    File externalStorageDirectory = Environment.getExternalStorageDirectory();
    long totalSpace = externalStorageDirectory.getTotalSpace();
    long freeSpace = externalStorageDirectory.getFreeSpace();
    String total = android.text.format.Formatter.formatFileSize(this, totalSpace);
    String free = android.text.format.Formatter.formatFileSize(this, freeSpace);

SharePreferences

  1. 公共方法:
    在这里插入图片描述

  2. 使用方式:
    例子:

//轻量级的存储信息api 可以保存的数据类型有6种(boolean,int,log,float,String,set<String>)
// 使用场景:配置应用属性(时候开启日夜模式,上网数据使用wifi还是流量)
//获取SharePreferneces对象 第一个参数是文件名称 第二个参数是存储的模式
//如果该文件不存在会自动创建
SharedPreferences info = getSharedPreferences("info", MODE_PRIVATE);
SharedPreferences.Editor edit = info.edit();
edit.putString("test", "123");
edit.apply();

//取出内容 第二个参数是默认值
String test = info.getString("test", "456");

//文件会保存在 data/data/包名/shared_prefs

文件权限

在这里插入图片描述
linux使用十位二进制数表示文件权限
第一位用来表示 是文件(-)还是目录(d)
后面的九位,每3位代表一个组 分别是 当前用户, 同组用户, 其他用户

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小猿成长

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值