Android数据存储之File存储

内部存储 Internal storage

  • 特点
    1.文件只能被当前应用程序访问,其他应用程序不能访问
    2.当应用程序卸载后,程序在内部存储的文件也会被删除
  • 路径
    data/data/应用程序包名/files/文件名.后缀名
  • 存入数据步骤
    1.打开内部文件存储的输出流(第一个参数文件名称,第二个参数:文件的操作模式)
    FileOutputStream fos = openFileOutput(fileName,Context.MODE_PRIVATE);
    2.写入数据
    fos.write(contant.getBytes());
    3.关闭流
    fos.close();
  • 读取数据步骤
    1.打开内部存储文件的输入流
    FileInputStream fis = openFileInput(fileName);
    2.读取数据
    byte[] buffer = new byte[fis.available()]//fis.available()返回的实际可读字节数,也就是总大小
    fis.read(buffer);
    3.关闭流
    fis.close();
  • 内部存储常用的方法
    String[] filelist()//得到内部存储中所有文件的名称
    deleteFile(fileName)//删除指定的文件
    File getFileDir()//得到应用程序数据文件的绝对路径

外部存储(SD卡)External Storage

  • 特点
    1.需插入sd卡
    2.分为两部分:sd的公共目录,sd的私有目录
    3.公共目录下的文件可以被应用程序共享,私有目录下的文件只能被当前应用程序访问
    4.当程序卸载后,公共目录下的文件不会被清除,私有目录的下的文化会被清除
  • 目录
    mnt/sdcard 4.0版本之前的目录
    storage/sdcard 4.0后的目录 公共目录
    storage/sdcard/Android/data/应用程序包名/... 私有目录
  • 读写SD卡的权限
    WRITE_EXTERNAL_STORAGE 写sd卡的权限
    READ_EXTERNAL_STOAGE 读sd卡的权限
  • 获取扩展卡的根目录
    Environment.getExternalStorageDirectory()
  • 获取当前扩展卡的状态
    Environment.getExternalStorageState()
    MEDIA_MOUNTED 挂载的状态,sd卡已经被装载并切可以使用,判断存储的状态符合该条件,则进行存取
  • 目录
    context.getExternalFilesDir(null) 私有目录的根目录
    context.getExternalFilesDir(Environment.DIRECTORY_DOWNLOAD) 私有目录中的download目录中
    context.getExternalCacheDir() 私有目录中的缓存目录
    Environment.getExternalStorageDirectory() sd卡的根目录Environment.getExternalStorageDirectory(Environment.DIRECTORY_DOWNLOAD)公共目录中的download目录中

你可能感兴趣的:(Android数据存储之File存储)