文件路径和文件读取方

几种文件路径:

通过Context.getExternalFilesDir()方法可以获取到 SDCard/Android/data/你的应用的包名/files/ 目录,一般放一些长时间保存的数据
通过Context.getExternalCacheDir()方法可以获取到 SDCard/Android/data/你的应用包名/cache/目录,一般存放临时缓存数据
*如果使用上面的方法,当你的应用在被用户卸载后,SDCard/Android/data/你的应用的包名/ 这个目录下的所有文件都会被删除,不会留下垃圾信息。


/data/data/[packagename]/cache目录,存放一些其他缓存 File cache = getCacheDir();

/data/data/[packagename]/databases,存放数据库
/data/data/[packagename]/lib,应用的so目录
/data/data/[packagename]/shared_prefs 应用的SharedPreferences保存

一、 files 
1. Context.getFilesDir(),该方法返回/data/data/youPackageName/files的File对象。 
2. Context.openFileInput()与Context.openFileOutput(),只能读取和写入files下的文件,返回的是FileInputStream和FileOutputStream对象。 
3. Context.fileList(),返回files下所有的文件名,返回的是String[]对象。 
4. Context.deleteFile(String),删除files下指定名称的文件。 
二、cache 
1. Context.getCacheDir(),该方法返回/data/data/youPackageName/cache的File对象。 
三、custom dir 
getDir(String name, int mode),返回/data/data/youPackageName/下的指定名称的文件夹File对象,如果该文件夹不存在则用指定名称创建一个新的文件夹。

该段参考文章 http://aijiawang-126-com.iteye.com/blog/792931


 Environment.getDataDirectory())==/data
Environment.getExternalStorageState())==mounted
Environment.getRootDirectory())==/system
Environment.getDownloadCacheDirectory())==/cache
Environment.getExternalStorageDirectory())==/storage/emulated/0

3种文件读取方式(drawable,Asset,SD卡)

1.通过drawable获取图片

Drawable drawable=getResource().getDrawable(R.drawable.xxx);

Bitmap bitmap=BitmapFactory.decodeResource(getResource(), id);

通过图片的名称获得图片的id(两种方法)

 int id =res.getIdentifier(name, defType, defPackage); //name:图片的名,defType:资源类型(drawable,string。。。),defPackage:工程的包名


2通过asset获取图片

AssetManager asm=getAsset();

InputStream is=asm.open(name);//name:图片的名称

(1)获得Drawable
Drawable da = Drawable.createFromStream(is, null);
(2)获得Bitmap
Bitmap bitmap=BitmapFactory.decodeStream(is);


3通过SD卡获取图片

/图片路径
String imgFilePath = Environment.getExternalStorageDirectory().toString()+ “/DCIM/device.png”;
(1)文件输入流
fis = new FileInputStream(new File(imgFilePath));//文件输入流
Bitmap bmp = BitmapFactory.decodeStream(fis);

ImageView iv = (ImageView) findViewById(R.id.image);   
Bitmap bit = BitmapFactory.decodeFile("/sdcard/android.bmp");      
iv.setImageBitmap(bit);
iv.setImageDrawable(Drawable.createFromPath(new File(Environment.getExternalStorageDirectory(), "camera.jpg").getAbsolutePath()));

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值