精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

基于Java實現(xiàn)批量下載網(wǎng)絡(luò)圖片

開發(fā) 后端 前端
昨天朋友做項目遇到一個需求,需要把上千個的微博表情圖片下載到本地磁盤,并做好規(guī)范命名,塞給我一堆Json數(shù)據(jù),讓我?guī)兔μ幚硐拢凑e著也沒事干,就幫忙寫了。(很簡單的一個功能,隨手記錄下,剛好填補下最近博客的空白)

昨天朋友做項目遇到一個需求,需要把上千個的微博表情圖片下載到本地磁盤,并做好規(guī)范命名,塞給我一堆Json數(shù)據(jù),讓我?guī)兔μ幚硐拢凑e著也沒事干,就幫忙寫了。(很簡單的一個功能,隨手記錄下,剛好填補下最近博客的空白)

由于只是方便自己的工具,就不需要什么圖形界面了,就用Java去寫了,先看下效果圖~



嘿嘿,突然發(fā)現(xiàn)會寫程序是件好事,一千多張表情圖片要是手動下載再進行改名,非得忙個2天2夜不可。。

好了,言歸正傳,說下代碼實現(xiàn),分成3步:

1、獲取Json數(shù)據(jù)

2、根據(jù)Json數(shù)據(jù)所提供的圖片資源地址進行下載

3、分類,規(guī)范命名 

先來看下Json數(shù)據(jù)格式:

為了方便操作,我封裝了一個數(shù)據(jù)實體類

  1. package com.lcw.downloadutil.domain; 
  2.  
  3. public class Bean { 
  4.  
  5.     private String phrase; 
  6.     private String type; 
  7.     private String url; 
  8.     private Boolean hot; 
  9.     private Boolean common; 
  10.     private String category; 
  11.     private String icon; 
  12.     private String value; 
  13.     private String picid; 
  14.  
  15.     public String getPhrase() { 
  16.         return phrase; 
  17.     } 
  18.  
  19.     public void setPhrase(String phrase) { 
  20.         this.phrase = phrase; 
  21.     } 
  22.  
  23.     public String getType() { 
  24.         return type; 
  25.     } 
  26.  
  27.     public void setType(String type) { 
  28.         this.type = type; 
  29.     } 
  30.  
  31.     public String getUrl() { 
  32.         return url; 
  33.     } 
  34.  
  35.     public void setUrl(String url) { 
  36.         this.url = url; 
  37.     } 
  38.  
  39.     public Boolean getHot() { 
  40.         return hot; 
  41.     } 
  42.  
  43.     public void setHot(Boolean hot) { 
  44.         this.hot = hot; 
  45.     } 
  46.  
  47.     public Boolean getCommon() { 
  48.         return common; 
  49.     } 
  50.  
  51.     public void setCommon(Boolean common) { 
  52.         this.common = common; 
  53.     } 
  54.  
  55.     public String getCategory() { 
  56.         return category; 
  57.     } 
  58.  
  59.     public void setCategory(String category) { 
  60.         this.category = category; 
  61.     } 
  62.  
  63.     public String getIcon() { 
  64.         return icon; 
  65.     } 
  66.  
  67.     public void setIcon(String icon) { 
  68.         this.icon = icon; 
  69.     } 
  70.  
  71.     public String getValue() { 
  72.         return value; 
  73.     } 
  74.  
  75.     public void setValue(String value) { 
  76.         this.value = value; 
  77.     } 
  78.  
  79.     public String getPicid() { 
  80.         return picid; 
  81.     } 
  82.  
  83.     public void setPicid(String picid) { 
  84.         this.picid = picid; 
  85.     } 
  86.  
  87.     @Override 
  88.     public String toString() { 
  89.         return "Bean [phrase=" + phrase + ", type=" + type + ", url=" + url + ", hot=" + hot + ", common=" + common + ", category=" + category + ", icon=" + icon + ", value=" + value + ", picid=" + picid + "]"
  90.     } 
  91.  

然后我寫了一個工具類封裝了一些方法

分別用來處理(網(wǎng)絡(luò)數(shù)據(jù)的獲取,Json數(shù)據(jù)的反序列化,對圖片資源的下載)

  1. package com.lcw.downloadutil.utils; 
  2.  
  3. import java.io.BufferedInputStream; 
  4. import java.io.BufferedOutputStream; 
  5. import java.io.BufferedReader; 
  6. import java.io.File; 
  7. import java.io.FileOutputStream; 
  8. import java.io.IOException; 
  9. import java.io.InputStream; 
  10. import java.io.InputStreamReader; 
  11. import java.net.MalformedURLException; 
  12. import java.net.URL; 
  13. import java.util.List; 
  14.  
  15. import com.google.gson.Gson; 
  16. import com.google.gson.reflect.TypeToken; 
  17. import com.lcw.downloadutil.domain.Bean; 
  18.  
  19. /** 
  20.  * 工具類集合 
  21.  *  
  22.  * @author Rabbit_Lee 
  23.  *  
  24.  */ 
  25. public class HelpUtils { 
  26.     /** 
  27.      * 根據(jù)所提供的url地址獲取Json數(shù)據(jù) 
  28.      *  
  29.      * @param path 
  30.      * @return 
  31.      */ 
  32.     public String getHttpString(String path) { 
  33.         // 存放獲取到的數(shù)據(jù) 
  34.         String info = ""
  35.         // 網(wǎng)絡(luò)請求所需變量 
  36.         InputStream in = null
  37.         InputStreamReader reader = null
  38.         BufferedReader bufferedReader = null
  39.         try { 
  40.             URL url = new URL(path); 
  41.             // 根據(jù)Url打開地址,以utf-8編碼的形式返回輸入流 
  42.             in = url.openStream(); 
  43.             reader = new InputStreamReader(in, "utf-8"); 
  44.             bufferedReader = new BufferedReader(reader); 
  45.             // 臨時接受數(shù)據(jù)變量 
  46.             String temp = null
  47.             while ((temp = bufferedReader.readLine()) != null) { 
  48.                 info += temp; 
  49.             } 
  50.             return info; 
  51.         } catch (MalformedURLException e) { 
  52.             e.printStackTrace(); 
  53.         } catch (IOException e) { 
  54.             e.printStackTrace(); 
  55.         } finally { 
  56.             try { 
  57.                 in.close(); 
  58.                 reader.close(); 
  59.                 bufferedReader.close(); 
  60.             } catch (IOException e) { 
  61.                 e.printStackTrace(); 
  62.             } 
  63.         } 
  64.         return null
  65.     } 
  66.  
  67.     /** 
  68.      * 將所提供的Json數(shù)據(jù)反序列化成Java對象(List集合) 
  69.      *  
  70.      * @param json 
  71.      * @return 
  72.      */ 
  73.     public List<Bean> changeJsonToList(String json) { 
  74.         // 利用Gson將JSON數(shù)據(jù)反序列化成JAVA對象 
  75.         Gson gson = new Gson(); 
  76.         List<Bean> beans = gson.fromJson(json, new TypeToken<List<Bean>>() { 
  77.         }.getType()); 
  78.         return beans; 
  79.     } 
  80.  
  81.     /** 
  82.      * 下載圖片,并按照指定的路徑存儲 
  83.      * @param bean 
  84.      * @param filePath 
  85.      */ 
  86.     public void makeImage(Bean bean, String filePath) { 
  87.         // 網(wǎng)絡(luò)請求所需變量 
  88.         try { 
  89.             //獲取輸入流 
  90.             BufferedInputStream in = new BufferedInputStream(new URL(bean.getUrl()).openStream()); 
  91.             //創(chuàng)建文件流 
  92.             File file = new File(filePath + bean.getPhrase()+".gif"); 
  93.             BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(file)); 
  94.             //緩沖字節(jié)數(shù)組 
  95.             byte[] data = new byte[2048]; 
  96.             int length = in.read(data); 
  97.             while (length != -1) { 
  98.                 out.write(data, 0, data.length); 
  99.                 length = in.read(data); 
  100.             } 
  101.             System.out.println("正在執(zhí)行下載任務(wù):當前正在下載圖片" + bean.getPhrase() + ".gif"); 
  102.             in.close(); 
  103.             out.close(); 
  104.         } catch (MalformedURLException e) { 
  105.             e.printStackTrace(); 
  106.         } catch (IOException e) { 
  107.             e.printStackTrace(); 
  108.         } 
  109.     } 
  110.  

上面代碼對于Json數(shù)據(jù)的處理,我用到了谷歌給我們提供的Gson工具類

對于Gson類不懂使用的朋友可以看下我之前寫過的一篇文章:

Gson簡要使用筆記》:http://www.cnblogs.com/lichenwei/p/3987429.html

  1. package com.lcw.downloadutil.main; 
  2.  
  3. import java.util.List; 
  4.  
  5. import com.lcw.downloadutil.domain.Bean; 
  6. import com.lcw.downloadutil.utils.HelpUtils; 
  7.  
  8. public class TaskMain { 
  9.  
  10.     private static final String URL = "這里涉及到Oauth2.0的一些個人隱私數(shù)據(jù)就不給出了"
  11.     private static String mJsonInfo; 
  12.  
  13.     public static void main(String[] args) { 
  14.         HelpUtils helpUtils = new HelpUtils(); 
  15.         // 獲取Json數(shù)據(jù) 
  16.         mJsonInfo = helpUtils.getHttpString(URL); 
  17.         // 將Json數(shù)據(jù)反序列化成java對象 
  18.         List<Bean> beans = helpUtils.changeJsonToList(mJsonInfo); 
  19.         //循環(huán)遍歷下載圖片 
  20.         for (int i = 0; i < beans.size(); i++) { 
  21.             helpUtils.makeImage(beans.get(i), "C:/images/"); 
  22.         } 
  23.  
  24.     } 
  25.  

到這里就完事了,有哪里不清楚的朋友,可以在下面文章評論交流。

作者:Balla_兔子
出處:http://www.cnblogs.com/lichenwei/
本文版權(quán)歸作者和博客園共有,歡迎轉(zhuǎn)載,但未經(jīng)作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文鏈接。
正在看本人博客的這位童鞋,我看你氣度不凡,談吐間隱隱有王者之氣,日后必有一番作為!旁邊有“推薦”二字,你就順手把它點了吧,相得準,我分文不收;相不準,你也好回來找我!

責任編輯:王雪燕 來源: 博客園
相關(guān)推薦

2010-01-27 17:53:18

Android顯示網(wǎng)絡(luò)

2015-04-17 10:31:11

PHP下載美女圖片實現(xiàn)代碼

2015-06-11 10:12:26

Android圖片加載緩存

2013-05-14 15:08:02

2009-11-24 14:45:08

PHP批量上傳圖片

2022-08-05 19:27:22

通用API鴻蒙

2012-12-25 13:54:28

AndroidTextview

2011-07-20 17:29:12

iPhone 網(wǎng)絡(luò)

2021-02-22 15:30:07

Python 開發(fā)編程語言

2021-12-27 10:40:13

Kubernetes網(wǎng)絡(luò)圖解Linux

2010-02-26 15:09:59

Linux NFS

2021-03-12 10:40:46

CycleGAN網(wǎng)絡(luò)圖像深度學習

2018-03-15 13:10:33

思科網(wǎng)絡(luò)技術(shù)智慧系統(tǒng)

2017-04-19 12:28:27

2011-03-09 10:07:56

網(wǎng)絡(luò)爬蟲Java

2023-12-06 09:33:54

Reactor網(wǎng)絡(luò)

2020-12-19 11:05:57

循環(huán)神經(jīng)網(wǎng)絡(luò)PyTorch神經(jīng)網(wǎng)絡(luò)

2010-11-29 13:17:00

Sybase批量操作

2009-06-30 09:16:45

數(shù)據(jù)庫存儲JSP文件

2014-05-04 11:02:58

jenkins服務(wù)器批量
點贊
收藏

51CTO技術(shù)棧公眾號

欧美诱惑福利视频| 337p日本欧洲亚洲大胆精品| 在线综合视频网站| 草草视频在线播放| 午夜在线观看免费一区| 视频直播国产精品| 久久久久国产免费| 国产精品久久久久av电视剧| 亚洲摸摸操操av| 久久99国产精品99久久| 亚洲系列第一页| 在线 亚洲欧美在线综合一区| 亚洲午夜激情免费视频| 性色av浪潮av| 最新日韩一区| 亚洲国产综合91精品麻豆| 色综合久久av| 手机看片1024国产| 韩国女主播成人在线| 91精品国产91久久久久福利| 黄色香蕉视频在线观看| 亚洲精华一区二区三区| 日韩欧美国产高清| 手机看片一级片| 蜜臀久久精品| 亚洲一区二区视频在线观看| 亚洲精品一区二区三区av| 手机av免费在线观看| 国产精品18久久久久| 国产精品一区二区性色av | 在线免费av播放| 免费高潮视频95在线观看网站| 成人免费在线视频| 日韩国产精品一区二区三区| 无码国产伦一区二区三区视频| 国产麻豆成人精品| 国产区精品视频| 无码视频一区二区三区| 国产视频一区三区| 久久久伊人欧美| 免费中文字幕在线观看| 91精品国产91久久久久久密臀| 亚洲老头老太hd| 污污污www精品国产网站| 精品中文字幕一区二区三区四区 | 男生操女生视频在线观看| 亚洲校园激情春色| 欧美日韩亚洲91| 丰满少妇久久久| 欧美videosex性极品hd| 亚洲精品国产高清久久伦理二区| 亚洲永久一区二区三区在线| 成人高清免费在线播放| 99精品久久99久久久久| 成人xxxxx色| av综合在线观看| 国产精品18久久久久久久久| 91日韩久久| 亚洲av无码乱码国产麻豆| 国产精品一二三四区| 亚洲综合在线中文字幕| 亚洲国产精品视频在线| 成人黄色大片在线观看 | 婷婷五月综合激情| 91在线porny国产在线看| 精品在线不卡| 黄色片在线免费看| 中文av一区二区| 日本黄色播放器| av超碰免费在线| 亚洲第一av色| 日本毛片在线免费观看| 欧美日韩精品免费观看视完整| 色狠狠桃花综合| 亚洲国产精品三区| 4438五月综合| 欧美va亚洲va| 亚洲av无码国产精品久久| 亚洲三级精品| 色婷婷成人综合| 麻豆国产尤物av尤物在线观看 | 午夜精品久久久久久99热软件| 国产情侣在线视频| 视频一区欧美精品| 成人网在线观看| 免费观看黄一级视频| 久久久久久久综合| 一区二区三区视频在线播放| 欧美xxxx做受欧美88bbw| 高跟丝袜欧美一区| 亚洲综合日韩欧美| xvideos.蜜桃一区二区| 亚洲视频电影图片偷拍一区| 欧美三级黄色大片| 在线综合亚洲| 国产中文字幕91| 欧美一级片免费| 中文字幕精品综合| 精品国产一区二区三区无码| 国模一区二区| 精品免费视频一区二区| 超碰人人干人人| 激情欧美一区二区三区| 国产精品一区二区久久久| 日本精品久久久久久| 中文字幕一区二区三区精华液| 精品无码国模私拍视频| 宅男噜噜噜66国产精品免费| 国产丝袜一区二区三区免费视频| 顶臀精品视频www| 久久久久久婷| 国产精品我不卡| 欧美黄色激情| 色天使色偷偷av一区二区| 成人三级做爰av| 成人久久电影| 日本免费一区二区三区视频观看| 国产suv一区二区| 亚洲国产精品国自产拍av| www.射射射| 粉嫩av国产一区二区三区| 亚洲色图13p| 国产午夜精品无码| 国产一区三区三区| 日韩激情久久| 一级毛片久久久| 日韩精品视频免费| 激情小说中文字幕| 久草中文综合在线| 日韩精品国内| a日韩av网址| 日韩大片在线观看视频| 欧美日韩在线视频免费| 国产主播一区二区| 亚洲欧洲一区二区| 欧美日韩精品一区二区三区视频| 亚洲精品美女在线观看播放| 久久久久久蜜桃| 国产成人在线看| 亚洲精品国产suv一区88| 亚洲男女网站| 日韩在线欧美在线国产在线| 国产在线一级片| 久久精品视频免费观看| 日本免费不卡一区二区| 国产精品15p| 午夜精品视频在线| 日本国产在线观看| 午夜精品影院在线观看| 国产一卡二卡三卡四卡| 一区在线视频| 国产日韩欧美一区二区三区四区| h片精品在线观看| 亚洲国产精品免费| 人人干人人干人人干| 99精品1区2区| 日本三区在线观看| 欧美手机视频| 91精品久久久久久久久久另类| 免费大片在线观看www| 欧美日韩激情一区二区三区| 午夜激情福利网| 国产成人av电影免费在线观看| av在线免费观看国产| 日本精品视频| 97免费中文视频在线观看| 涩涩视频在线观看免费| 色狠狠色噜噜噜综合网| 很污很黄的网站| 国产成人在线视频网址| 欧美成人三级在线视频| 久久av综合| 国产精品综合不卡av| 2024最新电影在线免费观看| 精品电影一区二区| 亚洲免费在线视频观看| 欧美激情自拍偷拍| 佐山爱在线视频| 亚洲精品国产日韩| 日韩欧美精品久久| 久久三级中文| 欧洲精品在线视频| 日本在线看片免费人成视1000| 日韩视频免费直播| 久久99国产综合精品免费| 国产精品美女一区二区三区| 美女又黄又免费的视频| 免费看黄裸体一级大秀欧美| 中文字幕日韩精品一区二区| 激情亚洲另类图片区小说区| 国产精品美女在线观看| 男女在线视频| 中日韩午夜理伦电影免费 | 亚洲第一网站在线观看| 18成人在线观看| 免费的av网站| 久久69国产一区二区蜜臀| 日日摸日日碰夜夜爽无码| 久久激情电影| 九九99玖玖| 国产精品一级在线观看| 日本中文字幕成人| 午夜成年人在线免费视频| 亚洲色图日韩av| 性猛交富婆╳xxx乱大交天津| 日本精品一级二级| 日本五十熟hd丰满| 136国产福利精品导航| 精品少妇一区二区三区免费观| 国产在线精品视频| 日本一极黄色片| 亚洲人成免费| 精品国产无码在线| 激情综合网五月| 精品综合久久| 福利片在线一区二区| 国产精品一香蕉国产线看观看| av影院在线| 欧美成aaa人片免费看| 国产三级在线| 日韩麻豆第一页| 蜜臀av免费在线观看| 91精品国产欧美一区二区成人| 国产在线一级片| 欧美性猛交xxxx免费看久久久| 久久久久久国产精品视频| 亚洲欧洲成人精品av97| 18精品爽国产三级网站| 久久久久久久综合| 最新中文字幕视频| 不卡av在线网| 99riav国产精品视频| 国产精品123区| 天天操夜夜操很很操| 久久99精品国产.久久久久久| 91视频免费版污| 久久久www| 农村妇女精品一二区| 亚洲免费综合| 男女av免费观看| 亚洲伊人网站| 北条麻妃69av| 亚洲欧美久久久| 国产精品免费成人| 久久久久久久欧美精品| 日av中文字幕| 日本v片在线高清不卡在线观看| 成熟老妇女视频| 日韩高清在线一区| 中文字幕网av| 黄一区二区三区| 一二三级黄色片| 国产精品亚洲一区二区三区妖精| gogogo高清免费观看在线视频| 久久se精品一区二区| 天堂av8在线| 国产精品1区2区| 成人做爰www看视频软件| 成人精品国产免费网站| 六十路息与子猛烈交尾| 26uuu国产日韩综合| 午夜时刻免费入口| 国产精品美女久久久久久| 裸体武打性艳史| 一区二区三区免费网站| 久久9999久久免费精品国产| 舔着乳尖日韩一区| 亚洲色成人www永久网站| 在线观看一区二区视频| 亚洲永久精品视频| 日韩一区二区麻豆国产| 色欲av伊人久久大香线蕉影院| 亚洲第一免费网站| 男女av在线| 日韩少妇与小伙激情| 影音先锋在线视频| 欧美最猛性xxxxx免费| 久久三级毛片| 国产精品中出一区二区三区| 亚洲另类春色校园小说| 亚洲午夜精品久久| 精久久久久久| 国产九九在线视频| 国产高清亚洲一区| wwwwxxxx国产| 亚洲免费观看高清完整版在线观看熊 | 日韩无套无码精品| 久久成人久久鬼色| 182在线视频| 国产精品色眯眯| 日韩高清精品免费观看| 在线免费不卡视频| hs视频在线观看| 亚洲欧洲国产精品| 色婷婷av在线| 国产精品福利片| 成人资源在线播放| 亚洲一区二区三区涩| 亚洲欧洲综合| 日韩欧美理论片| 久久久99久久精品欧美| 久久久久久久蜜桃| 欧美日韩高清在线播放| 日韩在线无毛| 久精品免费视频| www.久久| 麻豆精品视频| 亚洲国产一区二区三区a毛片| 亚洲综合婷婷久久| 久久婷婷综合激情| 国产奶水涨喷在线播放| 欧美色倩网站大全免费| 午夜视频福利在线| 久久99热精品这里久久精品| 成人国产综合| 欧美日韩一区二区三区在线视频 | 亚洲欧美成人vr| 日韩免费在线观看av| 久久精品国产久精国产爱| 性欧美成人播放77777| 亚洲综合区在线| 国产视频在线观看视频| 色婷婷成人综合| 日韩一级二级| 日本一区视频在线播放| 亚洲在线播放| www.88av| 香蕉影视欧美成人| 亚洲免费成人网| 欧美人成在线视频| 日本免费精品| 日韩一二区视频| 国产一区二区三区香蕉| 色哟哟一一国产精品| 欧美日韩成人一区| 97电影在线观看| 国产精品美女久久久免费| 欧美熟乱15p| 天天干天天综合| 欧美国产日韩精品免费观看| 亚洲av无码不卡| 国产一区二区三区在线观看网站 | 国产精品成人一区二区网站软件| 在线观看日本www| 综合久久国产九一剧情麻豆| 在线免费观看一级片| 尤物tv国产一区| 国产精品传媒麻豆hd| 杨幂一区欧美专区| 久久99久久久欧美国产| 久久人妻无码aⅴ毛片a片app| 欧美日韩国产区一| fc2ppv国产精品久久| 97中文在线观看| 欧美午夜电影在线观看| 特级特黄刘亦菲aaa级| 五月激情综合婷婷| 精品无人乱码| 国产精品丝袜高跟| 伊人成综合网| 四虎精品一区二区| 色综合婷婷久久| 91啦中文在线| 97碰碰视频| 午夜亚洲伦理| 成人在线观看免费高清| 欧美精选在线播放| 欧美xxxx少妇| 欧美性色黄大片人与善| 蜜桃视频一区二区| 欧美日韩精品在线观看视频| 亚洲成人亚洲激情| 桃花岛成人影院| 色中文字幕在线观看| 成人精品免费网站| 最新中文字幕在线观看视频| 久久九九免费视频| 国内精品免费| 色综合天天色综合| 亚洲一区二区三区三| 久草在线青青草| 99国产超薄肉色丝袜交足的后果 | 欧美亚洲国产日本| 日韩成人精品一区二区| 亚洲美女高潮久久久| 欧美午夜精品久久久久久浪潮 | 色婷婷.com| 亚洲第一在线综合网站| 国产精品影院在线| 福利视频一区二区三区| 日韩综合在线视频| 久久免费黄色网址| 中文字幕一精品亚洲无线一区| av综合网页| 亚洲xxx在线观看| 天天综合色天天综合色h| 麻豆视频在线观看免费网站| 久久精品丝袜高跟鞋| 激情欧美一区二区三区在线观看| xxxx.国产|