下载网络上的图片,并且保存在指定的文件夹中
来源:互联网 发布:天津网络推广公司排名 编辑:程序博客网 时间:2024/04/24 07:34
源代码:EmotionManager类
/** *EmotionManager.java *2011-11-1 下午09:35:02 *Touch Android *http://bbs.droidstouch.com */package Util;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.URL;import java.util.concurrent.ArrayBlockingQueue;import java.util.concurrent.BlockingQueue;/** * 下载网络上的图片的统一类,以后下载什么图片都可以调用 */public class EmotionManager{ private String root="/sdcard/emotions/"; private BlockingQueue<String> urlQueue =null; public EmotionManager( int emotionSize) { urlQueue = new ArrayBlockingQueue(emotionSize); createDir(); } public void putURL(String url) { try { urlQueue.put(url); } catch (InterruptedException e) { e.printStackTrace(); } } public void createDir() { File file = new File(root); if(file.exists()) file.mkdirs(); } public void startThread() { new DownloadImageThread().start(); } public void downEmotions(String url) { try { down(url); } catch (Exception e) { e.printStackTrace(); } } public void down(String url) throws Exception { URL u = new URL(url); HttpURLConnection connection = (HttpURLConnection) u.openConnection(); String path = root + getEmotionName(url); saveFile(path, connection.getInputStream()); } public String getEmotionName(String url) { return url.substring(url.lastIndexOf(".") +1); } public void saveFile(String path,InputStream is) { BufferedInputStream bis = null; BufferedOutputStream bos = null; FileOutputStream fos = null; try { bis = new BufferedInputStream(is); fos = new FileOutputStream(new File(path)); bos = new BufferedOutputStream(fos); byte[] buffer = new byte[1024]; int length; while((length = bis.read(buffer)) != -1) { bos.write(buffer, 0, length); } } catch (Exception e) { } finally { try { if(null != bis) { bis.close(); } if(fos != null) fos.close(); if(null != bos) { bos.flush(); bos.close(); } } catch (IOException e) { e.printStackTrace(); } } } private class DownloadImageThread extends Thread { private boolean isRun=true; public void shutDown() { isRun =false; } public void run() { try { while(isRun) { String url= urlQueue.poll(); if(null == url) break; downEmotions(url); } } catch (Exception e) { } finally { shutDown(); } } } }
调用:在activity的refresh中调用
@Overridepublic void refresh(Object... params) { List<Emotion> lists= (List<Emotion>) params[0]; EmotionManager manager = new EmotionManager(lists.size()); for (Emotion emotion : lists) { manager.putURL(emotion.getUrl()); //下载的url放入 Log.i("AtActivity", emotion.getPhrase()); Log.i("AtActivity", emotion.getUrl()); } manager.startThread(); //开启下载的线程 progressDialog.dismiss();}
0 0
- 下载网络上的图片,并且保存在指定的文件夹中
- 长按图片保存到指定的文件夹,并且更新到图库中
- android代码截屏截切图片并且保存到指定文件夹中
- 使用URL下载指定的文件保存到指定的文件夹中。
- 基于Java语言完成:使用URL下载指定的文件保存到指定的文件夹中
- android网络下载图片并且显示在图库中
- 打开相机,并返回没有被压缩的图片,并且将图片保存在相册中
- 批量保存图片到指定文件夹中
- Android实现网络下载图片保存到SD卡的照片文件夹
- Android如何获取网络上的图片并且显示在ImageView上
- 保存图片到sd卡指定的(创建)文件夹
- 将网络上的图片缓存到本地指定目录文件夹下方式。
- Java如何保存网络上的图片
- Java 根据url下载图片 并 保存到对应的本地的新建文件夹中
- opencv中在屏幕上每隔几秒显示一个点,并且保存点的坐标
- 将网络图片保存在本地,并且出现在图库中
- android 图片获取策略,下载并保存至指定文件夹
- java 下载网络上的图片并保存到本地目录
- form中input标签的各种参数设置
- XSS与CSRF攻击
- mvc 整体模型辅助器 支架(Scaffolding)
- 在滚动视图上添加的多张图片,清空数组但是还有图片存在界面上,是因为清空的是滚动父控件,子控件并没有销毁,按钮和按钮上的图片还是存在?
- form表单中input标签的11个高级用法
- 下载网络上的图片,并且保存在指定的文件夹中
- linux下tomcat配置开机启动
- 包过滤防火墙
- 泛型
- 牛顿迭代法求解平方根
- BZOJ 3673 && BZOJ 3674 可持久化线段树
- netty 4.0.13 使用样例
- 南邮1340 矩阵逆 初等行转换
- 解析数据出错:reason: '-[__NSCFArray bytes]: unrecognized selector sent to instance 0x18056b30'