需求(Java语言实现):对存有图片URL的txt文件进行逐行读取,自行下载txt文件中的图片到指定文件夹中

所需大体知识:

     

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

  

简单粗暴,直接上源码!

url.text:

 http://img1.gtimg.com/ninja/2/2017/10/ninja150920168497503.jpg
http://img1.gtimg.com/ninja/2/2017/11/ninja150967118363514.jpg
http://mat1.gtimg.com/ent/0/qiyuqizh212.jpg
http://img.gtimg.cn/images/hq_parts_little8_2/hushen/indexs/000001.png
http://img1.gtimg.com/ninja/2/2017/11/ninja150966563028291.gif
http://img1.gtimg.com/stock/pics/hv1/56/19/2248/146181101.jpg
http://img1.gtimg.com/ninja/2/2017/11/ninja150966778650505.jpg
http://inews.gtimg.com/newsapp_ls/0/2242516932_150120/0
http://img1.gtimg.com/ninja/2/2017/11/ninja150966867052576.jpg
http://img1.gtimg.com/sports/pics/hv1/222/24/2248/146182542.jpg
http://inews.gtimg.com/newsapp_ls/0/2240878073_150120/0
http://img1.gtimg.com/ninja/2/2017/11/ninja150968455899383.jpg
http://img1.gtimg.com/ninja/2/2017/11/ninja150968458419986.jpg
http://img1.gtimg.com/ninja/2/2017/11/ninja150968461011375.jpg
http://img1.gtimg.com/ninja/2/2017/11/ninja150966940884094.jpg
http://img1.gtimg.com/ninja/2/2017/11/ninja150966944955634.jpg
http://img1.gtimg.com/20/2065/206596/20659639_small.jpg
http://img1.gtimg.com/fashion/pics/hv1/254/18/2248/146181044.jpg
http://img1.gtimg.com/fashion/pics/hv1/0/19/2248/146181045.jpg
http://img1.gtimg.com/astro/pics/hv1/149/18/2248/146180939.jpg
http://img1.gtimg.com/astro/pics/hv1/150/18/2248/146180940.jpg
http://img1.gtimg.com/edu/pics/hv1/43/14/2248/146179813.jpg
http://img1.gtimg.com/ninja/2/2017/10/ninja150839095284702.jpg
http://img1.gtimg.com/kid/pics/hv1/242/230/2247/146170067.jpg
http://img1.gtimg.com/kid/pics/hv1/129/27/2248/146183214.jpg
http://img1.gtimg.com/kid/pics/hv1/114/233/2247/146170704.jpg
http://img1.gtimg.com/kid/pics/hv1/173/233/2247/146170763.jpg
http://img1.gtimg.com/kid/pics/hv1/73/14/2246/146049793.jpg
http://img1.gtimg.com/news/pics/hv1/217/28/2248/146183557.jpg
http://img1.gtimg.com/gamezone/pics/hv1/101/72/2248/146194661.jpg
http://img1.gtimg.com/20/2064/206433/20643392_small.jpg
http://img1.gtimg.com/cul/pics/hv1/14/0/2248/146176214.jpg
http://img1.gtimg.com/ninja/2/2017/11/ninja150971002075013.jpg
http://img1.gtimg.com/ninja/2/2017/11/ninja150966635210337.jpg
http://img1.gtimg.com/rushidao/pics/hv1/252/138/2247/146146617.jpg
http://img1.gtimg.com/ninja/2/2017/09/ninja150581019564795.jpg
http://img1.gtimg.com/ly/pics/hv1/198/229/2247/146169768.jpg
http://img1.gtimg.com/sheying/pics/hv1/221/36/2248/146185601.jpg
http://img1.gtimg.com/sheying/pics/hv1/223/36/2248/146185603.jpg
http://img1.gtimg.com/sheying/pics/hv1/222/36/2248/146185602.jpg
http://img1.gtimg.com/sheying/pics/hv1/224/36/2248/146185604.jpg
http://mat1.gtimg.com/fashion/monicajia/angelababy.jpg
http://img1.gtimg.com/astro/pics/hv1/229/22/2248/146182039.jpg
http://img1.gtimg.com/edu/pics/hv1/42/14/2248/146179812.jpg
http://img1.gtimg.com/finance/pics/hv1/19/109/2247/146138989.jpg
http://img1.gtimg.com/cul/pics/hv1/25/18/2248/146180815.jpg
http://img1.gtimg.com/tech/pics/hv1/69/199/2246/146096964.jpg
http://img1.gtimg.com/housenews/pics/hv1/142/19/2248/146181187.jpg
http://img1.gtimg.com/auto/pics/hv1/162/11/2248/146179167.jpg
http://img1.gtimg.com/rushidao/pics/hv1/95/18/2248/146180885.png
http://mat1.gtimg.com/fashion/monicajia/dilireba1.jpg
http://img1.gtimg.com/20/2066/206627/20662771_small4.png
http://img1.gtimg.com/ent/pics/hv1/249/28/2247/146118564.jpg
http://img1.gtimg.com/digi/pics/hv1/6/212/2247/146165241.jpg
http://img1.gtimg.com/sports/pics/hv1/186/25/2248/146182761.jpg
http://mat1.gtimg.com/www/images/qq2012/icon_yuewangga1.png
http://mat1.qq.com/www/images/ind36.gif
http://mat1.gtimg.com/www/images/qq2012/buliang.png
http://mat1.qq.com/www/images/allskin/wmlogo.gif
http://mat1.gtimg.com/www/images/qq2012/cxrz5.png
http://mat1.gtimg.com/www/images/qq2012/gswj2015.jpg


Java源码:


import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;


public class DownloadPicture {
public static void main(String args[]) throws Exception {
//File file = new File("D:\\新建文本文档.txt");// Text文件
FileReader file=new FileReader("D:\\新建文本文档.txt");//获取文件流
BufferedReader br = new BufferedReader(file);// 构造一个BufferedReader类来读取文件
String  s=null;
while ((s = br.readLine()) != null) {// 使用readLine方法,一次读一行
downImages("d:\\picture",s);
}
br.close();;
}



private static void downImages(String filePath, String imgUrl) {
// TODO Auto-generated method stub
File Dir=new File(filePath);//若存取文件夹没有,则先创建
if (!Dir.exists()) {
Dir.mkdirs();
}
//截取图片文件名
String fileName=imgUrl.substring(imgUrl.lastIndexOf('/')+1,imgUrl.length());

try {
            // 文件名里面可能有中文或者空格,所以这里要进行处理。但空格又会被URLEncoder转义为加号
            String urlTail = URLEncoder.encode(fileName, "UTF-8");
            // 因此要将加号转化为UTF-8格式的%20
            imgUrl = imgUrl.substring(0, imgUrl.lastIndexOf('/') + 1) + urlTail.replaceAll("\\+", "\\%20");


        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }

//写出路径
File file=new File(filePath+File.separator+fileName);

try {
            //获取图片URL
URL url=new URL(imgUrl);
//获得连接
URLConnection connection=url.openConnection();
//设置10秒的响应时间
connection.setConnectTimeout(10*1000);
//获得输入流
InputStream in=connection.getInputStream();
//获得输出流
BufferedOutputStream out=new BufferedOutputStream(new FileOutputStream(file));
//构建缓冲区
byte[] buf=new byte[1024];
int size;
//写入到文件
while (-1!=(size=in.read(buf))) {
out.write(buf,0,size);
}
out.close();
in.close();
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
}
}

 结果如下:









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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值