美文网首页
Android数据存储

Android数据存储

作者: 慢慢来111 | 来源:发表于2016-11-26 10:12 被阅读14次

    数据存储

    数据存储--存储

    • 第一步:路径是内部存储空间的路径 路径只能写现在这个工程的路径
      File file = new File("data/data/com.example.shuijucunchu/info.txt");
    • 第二步:创建文件输出流
      FileOutputStream fos;
      传入一个file并且实例化这个fos
      fos = new FileOutputStream(file);
      把内容写入这个文件
      fos.write((name+"####"+pass).getBytes());
      关闭输出流
      fos.close();

    数据存储---读取

    • 第一步:根据路径获得文件
      File file = new File("data/data/com.example.shuijucunchu/info.txt");
    • 第二步:创建读取流
      FileInputStream fos = new FileInputStream(file);
    • 第三步:把字节流转换成字符流
      BufferedReader br = new BufferedReader(new InputStreamReader(fos));
    • 第四步:读取
      String text = br.readLine();
    • 第五:将字符串 根据字符转换成数据
      String[] s = text.split("####");
    • 赋值
      et_name.setText(s[0]);
      et_pass.setText(s[1]);

    用api在内部存储中读写文件

    • 其实就是路径自己不用写调用方法就行了
      第一个参数是data/data/com.example.shuijucunchu/files 第二个参数是文件名
      File file = new File(getFilesDir(),"info.txt");
      第一个参数是data/data/com.example.shuijucunchu/cache
      File file = new File(getCacheDir(),"info.txt");
    • 如何检测sd卡
      • MEDIA_UNKNOWN:不能识别sd卡
      • MEDIA_REMOVED:没有sd卡
      • MEDIA_UNMOUNTED:sd卡存在但是没有挂载
      • MEDIA_CHECKING:正在准备
      • MEDIA_MOUNTED:sd卡已经挂载,可用

    if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {逻辑处理}

    获取SD卡剩余空间的大小

    • 第一步:获取sd卡的路径并创建File对象
      File path = Environment.getExternalStorageDirectory();
    • 第二步:根据sd卡路径创建一个StatFs的对象,这个对象包含存储空间的所有信息
      StatFs stat = new StatFs(path.getPath());
    • 第三步:获取区块大小,获取区块的总个数,获取可用区块的个数
      long blockSize = stat.getBlockSize();
      long totalBlocks = stat.getBlockCount();
      long avaliableBlocks = stat.getAvailableBlocks();
    • 第四步:可用空间 总空间 字符类型转换
      可用 = 可用个数 * 区块的大小
      总个空间 = 总个数 * 区块的大小
      Formatter.formatFileSize(this, avaliableBlocks * blockSize);

    文件访问权限

    • 在Android中,每一个应用,都是一个独立的用户
    • 指的是谁能访问这个文件
    • 使用十个字母drwxrwrwx
    • 第一做字母
      • d:表示文件夹
      • -:表示文件
    • 第一组rwx:表示的是文件拥有者(owner)对文件的权限
      • r:reaed,读
      • w:write 写
      • x:execute 执行权限 -表示没有执行权限
    • 第二组rwx:表示的是跟文件拥有者属于同一个用户组的用户对文件的权限。
    • 第三组rwx:表示的其他用户对文件的权限

    SharedPreference写入文件

    • 非常适合用来保存简单的,零散的数据
    • 第一步:初始化对象SharedPreferences 第一个参数:文件名 第二个参数:权限
      SharedPreferences sp = getSharedPreferences("info",MODE_PRIVATE);
    • 第二步:初始化sp的编辑器
      Editor ed = sp.edit();
    • 第三步:写入文件,根据键,值的方式
      ed.putString("name", name);
      ed.putString("pass", pass);
    • 第四步:提交
      ed.commit();

    SharedPreference读取文件

    • 第一步:初始化对象
      SharedPreferences sp = getSharedPreferences("info",MODE_PRIVATE);
    • 第二步:根据键去取值 第一个参数:键 第二个参数:假如根据这个键取不到值,那就显示第二个参数
      String name = sp.getString("name", "");

    外部数据存储中读写文件

    • 第一步:开启读sd卡的权限
      在清单文件中选择 Permissions然后再添加权限
    • 第二步:写路径
      File file = new File("sdcard/info.txt");
    • 当读sd卡时不需要权限4.0之前。 在4.0之后在开发者权限 设置保护sd卡 那么就需要读sd卡的权限

    对话框

    • 创建提示框
      参数1:this 参数2:提示框的内容 参数3:什么时候消失
      Toast t = Toast.makeText(this, "登陆成功", Toast.LENGTH_SHORT);
    • 显示对话框
      t.show();

    如何关联源码

    • ctrl+左键 选择Attach Source 把源码导入才能看到

    问题

    • 为什么要加try{}catch(){};

    相关文章

      网友评论

          本文标题:Android数据存储

          本文链接:https://www.haomeiwen.com/subject/qlawpttx.html