常用文件存储方法参考
来源:互联网 发布:菲尼克斯之光 知乎 编辑:程序博客网 时间:2024/06/06 05:33
Android中的文件存储主要分为两种:内部存储和外部存储
内部存储:系统自带存储空间,类似电脑的硬盘,一般比较小,但是访问稳定,安全性高,其他应用不可以随意访问,文件随应用卸载删除,在机身内存不足的时候文件可能会被删除
外部存储:系统外接的存储空间,类似电脑外接的移动硬盘,一般容量比较大,但是不一定可用,安全性不高,其他应用可随意访问,SDCard/Android/data/包名目录下的文件随应用卸载删除,其他目录下自建的目录和文件不会
基本操作:
1,如果使用外部存储,需要申请权限(API 19/Android 4.4以后可以不用申请此权限)
<uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permissionandroid:name="android.permission.READ_EXTERNAL_STORAGE" />
2,使用外部存储前先判断是否可用
/** * Check if the primary "external" storage device is available. * * @return */public static boolean hasSDCardMounted() { String state = Environment.getExternalStorageState(); if (state != null && state.equals(Environment.MEDIA_MOUNTED)) { return true; } else { return false; }}
3,通过File对象的getUsableSpace获取分区可用空间大小来判断和调整应用使用空间大小
4,路径规律
($rootDir)+- /data -> Environment.getDataDirectory()| || | ($appDataDir)| +- data/com.srain.cube.sample| || | ($filesDir)| +- files -> Context.getFilesDir() / Context.getFileStreamPath("")| | || | +- file1 -> Context.getFileStreamPath("file1")| | ($cacheDir)| +- cache -> Context.getCacheDir()| || +- app_$name ->(Context.getDir(String name, int mode)|| ($rootDir)+- /storage/sdcard0 -> Environment.getExternalStorageDirectory() | / Environment.getExternalStoragePublicDirectory("") | +- dir1 -> Environment.getExternalStoragePublicDirectory("dir1") | | ($appDataDir) +- Andorid/data/com.srain.cube.sample | | ($filesDir) +- files -> Context.getExternalFilesDir("") | | | +- file1 -> Context.getExternalFilesDir("file1") | +- Music -> Context.getExternalFilesDir(Environment.Music); | +- Picture -> ... Environment.Picture | +- ... | | ($cacheDir) +- cache -> Context.getExternalCacheDir() | +- ???
参考:http://www.tuicool.com/articles/AvUnqiy
0 0
- 常用文件存储方法参考
- Android文件存储使用参考
- Android文件存储使用参考
- Python常用文件操作参考
- Python常用文件操作参考
- 安卓文件存储使用参考
- Unity3D 脚本常用方法快速参考
- Asp.Net文件下载方法 参考
- android读写各类文件方法(参考)
- (4.1.41.1)安卓文件存储使用参考
- 写文件常用方法
- 读文件常用方法
- 常用文件复制方法
- Android存储文件的方法
- 【Velocity】Velocity常用参考(判断为null方法...)
- unity学习之Unity3D 脚本常用方法快速参考
- 常用文件存储路径大汇总
- SQL存储过程一些常用方法
- Java Web开发5___jQuery 中 按钮点击事件的几种写法
- 2016.03.14
- Delphi数据类型
- (十一)boost库之多线程间通信
- 156.Evaluate the following SQL statement:
- 常用文件存储方法参考
- 2705: [SDOI2012]Longge的问题|欧拉函数
- 跟我一起学Microsoft SQL Server 2012 Internals(2.1)
- Valgrind使用说明
- ADT的配置
- Android开发笔记(八十)运行状态检查
- css设置当前鼠标样式
- 《Effctive C++》读书笔记--(02)Prefer consts,enums,and inlines to #defines
- Spring进阶之路(11)-使用Aspectj切面配置和XML配置文件方式实现切面编程