一般文件读写,都是使用字节流进行的,也就是InputStream和OutputStream.
1.读取图片文件,并解析为图片
String Path = Environment.getExternalStorageDirectory()+ File.separator + "Download" + File.separator+ "123.jpg"; //定位图片所在路径,定位到图片本身,也即图片名
File file=new File(path); //解析是以文件为载体,生成相应文件
InputStream in=new FileInputStream(file); //解析文件,转化为字节流
简单的三步,将图片文件转化为了相应的字节流,接下来无论是显示图片,或者复制图片,都需要对字节流进行操作。
2.将字节流转化为对应图片
Bitmap bitmap=BitmapFactory.decodeStream(in); //字节流解析为Bitmap
Drawable draw=BitmapDrawable.createFromStream(in,null); //字节流解析为Drawable
3.将图片复制到别的文件夹,假设目标文件为sd卡下面的mypics文件夹下
String Path = Environment.getExternalStorageDirectory()+ File.separator + "Mypics" + File.separator+ "123.jpg"; //自定义想要复制的目标路径,图片名
File file=new File(path); //生成目标文件
if(!file.exists()){ //没有已经存在的目录,则重新生成
file.createNewFile();
}
OutputStream out=new FileOutputStream(file); //创建写入流,加载写入地址file
int len=0;
byte[] buf=new byte[1024]; //每次读取1KB,限定每次读取大小,使得不会读取太多出现崩溃
while((len=in.read(buf))!=-1) { //如果每次读取的不为空
out.write(buf,0,len); //每次按字节写入目标文件
}
这样就可以把图片复制到目标文件下了,最后要关闭打开的流
in.close();
out.close();
转自:
点击打开链接