您的位置:首页 > 移动开发 > Android开发

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();
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: