Android文件管理
2016-04-12 15:15
441 查看
Android文件管理
最近研究Android缓存管理,需要用到Android文件操作,所以把经验分享一下。
一、Android默认系统路径
Environment.getDataDirectory().getPath() : /data
Environment.getDownloadCacheDirectory().getPath() : /cache
Environment.getExternalStorageDirectory().getPath(): /mnt/sdcard
Environment.getRootDirectory().getPath() : /system
Context.getCacheDir().getPath() : /data/data/com.zhd/cache
Context.getExternalCacheDir().getPath() : /mnt/sdcard/Android/data/com.zhd/cache
Context.getFilesDir().getPath() : /data/data/com.zhd/files
Context.getObbDir().getPath() : /mnt/sdcard/Android/obb/com.zhd
Context.getPackageName() : com.zhd
Context.getPackageCodePath() : /data/app/com.zhd-1.apk
Context.getPackageResourcePath() : /data/app/com.zhd-1.apk
二、缓存目录选择
1、通过Context.getExternalFilesDir()获取到SDCard/Android/data/你的应用的包名/files/ 目录,一般放一些长时间保存的数据。
2、通过Context.getExternalCacheDir()方法可以获取到 SDCard/Android/data/你的应用包名/cache/目录,一般存放临时缓存数据。
3、Context.getFilesDir()可以获取到”/data/data//files” 这个方法获取的目录不是在sdcard上,而是在应用安装的目录
4、Context.getCacheDir可以获取到”/data/data//cache” 这个方法获取的目录不是在sdcard上,而是在应用安装的目录,这个文件里面的数据在设备内存不足的时候,会被系统删除数据。注意:你不能依赖系统帮你删除这些文件,当这个文件夹里面的数据超过1MB的时候,系统会删除这个文件夹里面的数据。
例子 这里写代码片 public static final void saveObject(String path, Object saveObject) { FileOutputStream fos = null; ObjectOutputStream oos = null; path = Context.getExternalCacheDir()+user.txt; File f = new File(path); try { fos = new FileOutputStream(f); oos = new ObjectOutputStream(fos); oos.writeObject(saveObject); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { try { if (oos != null) { oos.close(); } if (fos != null) { fos.close(); } } catch (IOException e) { e.printStackTrace(); } } }
相关文章推荐
- Android Studio设置或修改Android SDK路径
- 有米Android SDK 实用工具
- 《Android源码设计模式》读书笔记 (21) 第21章 装饰模式
- Android实现Service后台下载Notification进度条
- android-tools-adb
- Android学习之创建中间缓存文件,处理文件名重复问题
- 2015最流行的android组件、工具、框架大全(前续)
- Android开发中一些挺有用的方法
- Android学习之程序创建桌面快捷方式
- android jni 引用第三方 so
- android 布局相关属性
- Android 性能典范
- Android中SQLite应用详解
- 忘记ANDROID手机密码怎么办
- Android串口通信:串口读写实例
- Android开发中的Surface库及用其制作播放器UI的例子
- 1.1.1 Creating an Android Project
- Android EventBus简记
- 2015最流行的Android组件、工具、框架大全
- Android中获取控件的位置宽高等信息都为0