• Android数据存储(3):External Storage


      Android系统的数据存储第三种方式是External Storage,即是外部存储。

      外部存储通常存储的是公共的数据,存储位置是在扩展卡或SD卡上,存储目录:/mnt/sdcard/Android/data/包名/cache,注:测试使用的是系统自带的模拟器。

      外部存储不是必须的,同时存储在扩展卡上的数据是不安全的,因为所有的程序都可以访问扩展卡上的数据,对数据进行读写操作。

      

      1.使用外部存储需要添加相应的全选,如READ_EXTERNAL_STORAGE 或者 WRITE_EXTERANL_STORAGE,必须的。

       eg:

        

      

      2.必须要判断扩展卡是否挂载,因为扩展卡对于android系统来说不是必须的,它是外置的。

        自己写的一个判断例子:

          

       官方文档的判断例子:

         

      这里:getExternalStorageState()返回了一个字符串常量,用来描述扩展卡的状态。

        

      3.判断扩展卡的空间是否够用(可选)

         

      4.保存图片到扩展卡(可选)

        

       5.保存图片到扩展卡(可选)

        

      6.从扩展卡读取图片(可选)

        

       7.清空扩展卡

        

       8.获取文件的name

        

        注意:为了是文件的名称具有唯一性,这里可以使用MD5算法将一个name字符串对应一个唯一的字符串。

      9.关于外部存储的缓存

        context.getExternalCacheDir()

       eg:

          

       打开File Explore 查看:

          

         该文件是在/mnt/sdcard/Android/data/com.tostrary.SharedPreferences/cache/目录下

       导出文件查看:

          

          

      10.外部存储常用方法

        getExternalStoragePublicDirectory()

        getExternalFilesDir()

        getExternalFilesDirs()

        getExternalCacheDirs()

      未完,待续。

  • 相关阅读:
    spoj1812 Longest Common Substring II( 后缀自动机 )
    SPOJ8222 Substrings( 后缀自动机 + dp )
    BZOJ 2882: 工艺( 后缀自动机 )
    NOIP2015酱油记
    NOIP2015前
    BZOJ 1088: [SCOI2005]扫雷Mine( )
    BZOJ 1261: [SCOI2006]zh_tree( 区间dp )
    HDU4027 Can you answer these queries? 线段树
    ZOJ3261 Connections in Galaxy War 并查集
    POJ 1773 Parity game 带权并查集
  • 原文地址:https://www.cnblogs.com/enjoy-coding/p/4893328.html
Copyright © 2020-2023  润新知