您的位置:首页 > 理论基础 > 计算机网络

java 使用IO从网络下载图片-

2016-06-03 16:42 405 查看
1.依赖包 httpclient-4.4.1.jar 包

2.贴上代码记录之

第一个参数是网络图片地址,第二个是保存到本地的目录,第三个是存放到本地的文件夹的名字。

/***
* 下载图片到本地
* @param imgUri
* @param fileName
* @return
*/
public static String downloadImg(String imgUri,String directory, String fileName) {
HttpClient client = HttpClients.createDefault();
HttpGet get = new HttpGet(imgUri);
FileImageOutputStream fios=null;
InputStream in=null;
ByteArrayOutputStream baos =null;
try {
baos= new ByteArrayOutputStream();
HttpResponse hr = client.execute(get);
HttpEntity entity = hr.getEntity();
in= entity.getContent();
byte[] buffer = new byte[1024];
int len = -1;
while ((len = in.read(buffer))>0) {
baos.write(buffer,0,len);
}
byte[] b = baos.toByteArray();
//创建目录
File dir = new File(directory);
if(!dir.exists()){
dir.mkdirs();
File file=new File(dir,fileName);
if(!file.exists()){
file.createNewFile();
fios = new FileImageOutputStream(file);
fios.write(b);
}
}else{
File file=new File(dir,fileName);
file.createNewFile();
fios = new FileImageOutputStream(file);
fios.write(b);
}
return dir+"/"+fileName;
} catch (IOException e) {
//异常处理
if(null!=fios){
try {
fios.close();
} catch (IOException e1) {

}
}

}
return null;
}

3.测试代码

String newImgUrl=downloadImg(imgUrl,"/home/test/workspace/images","test"+System.currentTimeMillis()+".png");
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: