您的位置:首页 > 编程语言 > Java开发

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

2017-11-03 20:10 1096 查看
所需大体知识:

     

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

  

简单粗暴,直接上源码!

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();

        }
}

}

 结果如下:



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐