02 如何管理文件
内部存储和外部存储
-
Internal Storage
内部存储
-
External Storage
外部存储
获取存储权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
//申请外部存储权限.
选择安装存储位置
android:installLocation:
存储位置说明
getFilesDir()//获取app的Internal目录/files.
getCacheDir()//获取app的Internal缓存目录/cache.
openFileOutput
如何判断是否可以存储
Environment.getExternalStorageState();//外部存储是否可用.
字段 含义
Environment.MEDIA_REMOVED 存储媒体被移除
Environment.MEDIA_UNMOUNTED 存储媒体没有挂载
Environment.MEDIA_CHECKING 正在检查存储媒体
Environment.MEDIA_NOFS 存储媒体是空白或是不支持的文件系统
Environment.MEDIA_MOUNTED 存储媒体已经挂载,并且挂载点可读/写
Environment.MEDIA_MOUNTED_READ_ONLY 存储媒体已经挂载,挂载点只读
Environment.MEDIA_SHARED 存储媒体正在通过USB共享
Environment.MEDIA_BAD_REMOVAL 在没有挂载前存储媒体已经被移除
Environment.MEDIA_UNMOUNTABLE 存储媒体无法挂载
标准目录路径
Environment.getExternalStoragePublicDirectory(String type) //获取标准目录
字段 含义
Environment.DIRECTORY_MUSIC 音乐存放
Environment.DIRECTORY_PODCASTS 系统广播
Environment.DIRECTORY_RINGTONES 系统铃声
Environment.DIRECTORY_ALARMS 系统提醒铃声
Environment.DIRECTORY_NOTIFICATIONS 系统通知铃声
Environment.DIRECTORY_PICTURES 图片存放
Environment.DIRECTORY_MOVIES 电影存放
Environment.DIRECTORY_DOWNLOADS 下载
Environment.DIRECTORY_DCIM 相机拍摄照片和视频
其他路径
getExternalStorageDirectory(),获得外部存储媒体目录(/storage/sdcard)
getDataDirectory(),获得data的目录(/data)
getDownloadCacheDirectory(),获得下载缓存目录(/cache)
getRootDirectory(),获得系统主目录(/system)
特殊文件夹
assets:不做任何处理的文件.
raw:不做任何处理的文件,会生成资源id,不可有子目录.
res:自动生成ID,不可有子目录.
-
获得Assets目录
getResources().getAssets();//获得assets目录 getAssets().list("path");//获得目录列表
-
图片转换为位图
Bitmap BitmapFactory.decodeStream(imputStream);//把图片转换为位图.
-
读音频
AssetFileDescriptor getAssets().openFd("Filename");//读音频,返回文件描述对象
-
读取Raw目录
getResources().open[Raw|color|string|Dawable]Resource("Filename");//读取Raw目录
其他
重点:
android:sample/demo.
android:/sdk源码.
android:github.com/googlesamples
android:官网/Api.