java多线程下载图片_java多线程根据文件里的URL下载图片

importjava.io.File;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.InputStream;importjava.io.OutputStream;importjava.net.HttpURLConnection;importjava.net.URL;importjava.net.URLConnection;importjava.util.Date;importjava.util.concurrent.LinkedBlockingQueue;public class RunnableImg extendsThread{privateThread t;privateString threadName;

LinkedBlockingQueuequeue;

RunnableImg(LinkedBlockingQueuequeue,String name) {this.queue=queue;

threadName=name;

System.out.println("Creating "+threadName);

}

@Overridepublic voidrun() {//TODO Auto-generated method stub

Date d = newDate();

System.out.println("Running "+threadName);while(true) {try{

ImgInfo currentimg=queue.take();

System.out.println(threadName+" "+currentimg.urlString+" is downloading");

URL url= newURL(currentimg.urlString);

HttpURLConnection con=(HttpURLConnection) url.openConnection();

InputStream is=con.getInputStream();intlen;

String saveImgPath= "G:\\"+currentimg.dirName;

File sf= newFile(saveImgPath);if (!sf.exists()) {

sf.mkdirs();

}

String loadPath= sf.getPath()+"\\"+currentimg.md5String+".jpg";

File check= newFile(loadPath);if (!check.exists()) {

OutputStream os= newFileOutputStream(loadPath);while((len = is.read())!=-1) {

os.write(len);

}

os.flush();

os.close();

System.out.println(d.toString()+" "+threadName+" "+currentimg.urlString+" downloaded Success "+currentimg.count);

}

is.close();

}catch(InterruptedException e) {//TODO Auto-generated catch block

System.out.println("Fail "+threadName);

e.printStackTrace();

}catch(IOException e) {

System.out.println("Fail "+threadName);

e.printStackTrace();

}

}

}

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值