中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java中怎么批量下載網絡圖片

發布時間:2021-07-02 14:58:25 來源:億速云 閱讀:150 作者:Leah 欄目:編程語言

這篇文章將為大家詳細講解有關Java中怎么批量下載網絡圖片,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

先來看下Json數據格式:

Java中怎么批量下載網絡圖片

為了方便操作,我封裝了一個數據實體類

package com.lcw.downloadutil.domain;  public class Bean {      private String phrase;     private String type;     private String url;     private Boolean hot;     private Boolean common;     private String category;     private String icon;     private String value;     private String picid;      public String getPhrase() {         return phrase;     }      public void setPhrase(String phrase) {         this.phrase = phrase;     }      public String getType() {         return type;     }      public void setType(String type) {         this.type = type;     }      public String getUrl() {         return url;     }      public void setUrl(String url) {         this.url = url;     }      public Boolean getHot() {         return hot;     }      public void setHot(Boolean hot) {         this.hot = hot;     }      public Boolean getCommon() {         return common;     }      public void setCommon(Boolean common) {         this.common = common;     }      public String getCategory() {         return category;     }      public void setCategory(String category) {         this.category = category;     }      public String getIcon() {         return icon;     }      public void setIcon(String icon) {         this.icon = icon;     }      public String getValue() {         return value;     }      public void setValue(String value) {         this.value = value;     }      public String getPicid() {         return picid;     }      public void setPicid(String picid) {         this.picid = picid;     }      @Override     public String toString() {         return "Bean [phrase=" + phrase + ", type=" + type + ", url=" + url + ", hot=" + hot + ", common=" + common + ", category=" + category + ", icon=" + icon + ", value=" + value + ", picid=" + picid + "]";     }  }

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

分別用來處理(網絡數據的獲取,Json數據的反序列化,對圖片資源的下載)

package com.lcw.downloadutil.utils;  import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.BufferedReader; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.MalformedURLException; import java.net.URL; import java.util.List;  import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; import com.lcw.downloadutil.domain.Bean;  /**  * 工具類集合  *   * @author Rabbit_Lee  *   */ public class HelpUtils {     /**      * 根據所提供的url地址獲取Json數據      *       * @param path      * @return      */     public String getHttpString(String path) {         // 存放獲取到的數據         String info = "";         // 網絡請求所需變量         InputStream in = null;         InputStreamReader reader = null;         BufferedReader bufferedReader = null;         try {             URL url = new URL(path);             // 根據Url打開地址,以utf-8編碼的形式返回輸入流             in = url.openStream();             reader = new InputStreamReader(in, "utf-8");             bufferedReader = new BufferedReader(reader);             // 臨時接受數據變量             String temp = null;             while ((temp = bufferedReader.readLine()) != null) {                 info += temp;             }             return info;         } catch (MalformedURLException e) {             e.printStackTrace();         } catch (IOException e) {             e.printStackTrace();         } finally {             try {                 in.close();                 reader.close();                 bufferedReader.close();             } catch (IOException e) {                 e.printStackTrace();             }         }         return null;     }      /**      * 將所提供的Json數據反序列化成Java對象(List集合)      *       * @param json      * @return      */     public List<Bean> changeJsonToList(String json) {         // 利用Gson將JSON數據反序列化成JAVA對象         Gson gson = new Gson();         List<Bean> beans = gson.fromJson(json, new TypeToken<List<Bean>>() {         }.getType());         return beans;     }      /**      * 下載圖片,并按照指定的路徑存儲      * @param bean      * @param filePath      */     public void makeImage(Bean bean, String filePath) {         // 網絡請求所需變量         try {             //獲取輸入流             BufferedInputStream in = new BufferedInputStream(new URL(bean.getUrl()).openStream());             //創建文件流             File file = new File(filePath + bean.getPhrase()+".gif");             BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(file));             //緩沖字節數組             byte[] data = new byte[2048];             int length = in.read(data);             while (length != -1) {                 out.write(data, 0, data.length);                 length = in.read(data);             }             System.out.println("正在執行下載任務:當前正在下載圖片" + bean.getPhrase() + ".gif");             in.close();             out.close();         } catch (MalformedURLException e) {             e.printStackTrace();         } catch (IOException e) {             e.printStackTrace();         }     }  }

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

package com.lcw.downloadutil.main;  import java.util.List;  import com.lcw.downloadutil.domain.Bean; import com.lcw.downloadutil.utils.HelpUtils;  public class TaskMain {      private static final String URL = "這里涉及到Oauth3.0的一些個人隱私數據就不給出了";     private static String mJsonInfo;      public static void main(String[] args) {         HelpUtils helpUtils = new HelpUtils();         // 獲取Json數據         mJsonInfo = helpUtils.getHttpString(URL);         // 將Json數據反序列化成java對象         List<Bean> beans = helpUtils.changeJsonToList(mJsonInfo);         //循環遍歷下載圖片         for (int i = 0; i < beans.size(); i++) {             helpUtils.makeImage(beans.get(i), "C:/images/");         }      }  }

關于Java中怎么批量下載網絡圖片就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

临湘市| 寻甸| 神池县| 缙云县| 信丰县| 元谋县| 镇康县| 宣城市| 合水县| 万年县| 眉山市| 阳城县| 梁河县| 承德县| 镇平县| 资源县| 科技| 建湖县| 广丰县| 浦县| 水城县| 丹凤县| 当雄县| 瓮安县| 丹江口市| 福建省| 隆化县| 新龙县| 鲁甸县| 江达县| 义乌市| 扎兰屯市| 胶州市| 隆尧县| 鹤山市| 长子县| 西昌市| 桃园县| 建瓯市| 南充市| 和静县|