最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java多線程下載網(wǎng)圖的完整案例

 更新時(shí)間:2021年03月28日 11:01:12   作者:花傷情猶在  
這篇文章主要給大家介紹了關(guān)于Java多線程下載網(wǎng)圖的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

Java多線程下載網(wǎng)圖案例

此案例依賴——文件操作工具類(FileUtils)

使用 apache 的commons-io包下的FileUtilsimportorg.apache.commons.io.FileUtils;

下載commons-io包

官方API文檔

點(diǎn)擊即可下載,然后導(dǎo)入IDEA的庫中或者項(xiàng)目中。

在這里插入圖片描述

導(dǎo)包

在這里插入圖片描述

首先創(chuàng)建一個(gè)下載器

步驟:

1.新建一個(gè)download類

2.在類中建立一個(gè)下載方法

下載方法需要接收2個(gè)變量,一個(gè)是url下載地址,一個(gè)是name文件名稱

3.在下載方法中調(diào)用文件操作工具類(FileUtils)

4.try/catch捕獲異常并提示異常

方法 說明
copyURLToFile(URL source, File destination) 將字節(jié)從URL復(fù)制source到文件中 destination。
//下載器
class download{
	//下載方法
 public void down(String url,String name){
  try {
   FileUtils.copyURLToFile(new URL(url),new File(name));
  } catch (IOException e) {
   e.printStackTrace();
   System.out.println("IO異常,download方法出現(xiàn)問題");
  }
 }
}

然后創(chuàng)建一個(gè)線程類

步驟:

1.創(chuàng)建線程類-多線程下載器,繼承Thread

2.定義2個(gè)私有變量(url下載地址,name文件名稱)

3.創(chuàng)建有參數(shù)構(gòu)造器(用于初始化2個(gè)私有變量的值)

4.重寫Thread父類的run方法

run方法的方法體內(nèi)寫入要執(zhí)行的任務(wù),我們的任務(wù)就是要下載網(wǎng)圖,因?yàn)橐玫较螺d器里面的下載方法,所以直接實(shí)例化download類,然后調(diào)用download類中的down方法,由于down方法需要接受2個(gè)String類型的變量(url和name),直接將2個(gè)私有變量傳入進(jìn)去,最后給個(gè)提示,打印出下載的文件名稱。

public class 多線程下載器 extends Thread{
  private String url;
  private String name;
  public 多線程下載器(String url, String name) {
    this.url = url;
    this.name = name;
  }

  @Override
  public void run() {
    download download = new download();
    download.down(url,name);
    System.out.println("下載了名為"+name);
  }
}

在main方法中創(chuàng)建線程并啟動(dòng)

步驟:

1.創(chuàng)建一個(gè)main方法

2.創(chuàng)建3個(gè)線程

創(chuàng)建線程的時(shí)候要傳入?yún)?shù),目的是調(diào)用有參構(gòu)造器初始化私有變量

這里傳入3個(gè)圖片的地址以及文件的名稱

注意文件名稱,下載的文件類型要對(duì)應(yīng)好相應(yīng)的后綴名

多線程下載器 t1=new 多線程下載器(" 多線程下載器 t2=new 多線程下載器(" 多線程下載器 t3=new 多線程下載器("

3.用start開啟3個(gè)線程

start方法會(huì)開啟新的線程,并且在新的線程中調(diào)用線程類中的run方法

public static void main(String[] args) {
    多線程下載器 t1=new 多線程下載器("https://www.baidu.com/favicon.ico","百度.ico");
    多線程下載器 t2=new 多線程下載器("https://www.apple.com/favicon.ico","蘋果.ico");
    多線程下載器 t3=new 多線程下載器("https://www.jd.com/favicon.ico","京東.ico");
    t1.start();
    t2.start();
    t3.start();
  }

全部代碼:

package 多線程;

import org.apache.commons.io.FileUtils;

import java.io.File;
import java.io.IOException;
import java.net.URL;

public class 多線程下載器 extends Thread{
  private String url;
  private String name;
  public 多線程下載器(String url, String name) {
    this.url = url;
    this.name = name;
  }

  @Override
  public void run() {
    download download = new download();
    download.down(url,name);
    System.out.println("下載了名為"+name);
  }

  public static void main(String[] args) {
    多線程下載器 t1=new 多線程下載器("https://www.baidu.com/favicon.ico","百度.ico");
    多線程下載器 t2=new 多線程下載器("https://www.apple.com/favicon.ico","蘋果.ico");
    多線程下載器 t3=new 多線程下載器("https://www.jd.com/favicon.ico","京東.ico");
    t1.start();
    t2.start();
    t3.start();
  }
}
//下載器
class download{
  public void down(String url,String name){
    try {
      FileUtils.copyURLToFile(new URL(url),new File(name));
    } catch (IOException e) {
      e.printStackTrace();
      System.out.println("IO異常,download方法出現(xiàn)問題");
    }
  }
}

運(yùn)行結(jié)果:

在這里插入圖片描述

下載的文件默認(rèn)位置在項(xiàng)目下如圖:

在這里插入圖片描述

雙擊圖片文件可進(jìn)行查看

在這里插入圖片描述

總結(jié)

到此這篇關(guān)于Java多線程下載網(wǎng)圖的文章就介紹到這了,更多相關(guān)Java多線程下載網(wǎng)圖內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 超詳細(xì)講解Java異常

    超詳細(xì)講解Java異常

    Java 異常機(jī)制可以使程序中異常處理代碼和正常業(yè)務(wù)代碼分離,保證程序代碼更加優(yōu)雅,并提高程序健壯性。本文超詳細(xì)講解了Java異常,感興趣的小伙伴可以參考一下這篇文章
    2021-09-09
  • 從字節(jié)碼角度解析synchronized和反射實(shí)現(xiàn)原理

    從字節(jié)碼角度解析synchronized和反射實(shí)現(xiàn)原理

    這篇文章主要介紹了從字節(jié)碼角度解析synchronized和反射的實(shí)現(xiàn)原理,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • java中@JsonValue和@JsonCreator使用

    java中@JsonValue和@JsonCreator使用

    本文主要介紹了java中@JsonValue和@JsonCreator使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-06-06
  • java靜態(tài)代理的含義及用法

    java靜態(tài)代理的含義及用法

    在本篇文章里小編給大家整理的是一篇關(guān)于java靜態(tài)代理的含義及用法,有需要的朋友們可以跟著學(xué)習(xí)參考下。
    2021-06-06
  • 詳解JAVA Timer和TimerTask

    詳解JAVA Timer和TimerTask

    這篇文章主要介紹了JAVA Timer和TimerTask的相關(guān)資料,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • springboot 使用logback啟動(dòng)報(bào)警報(bào)錯(cuò)的解決

    springboot 使用logback啟動(dòng)報(bào)警報(bào)錯(cuò)的解決

    這篇文章主要介紹了springboot 使用logback啟動(dòng)報(bào)警報(bào)錯(cuò)的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • java中變量和常量詳解

    java中變量和常量詳解

    這篇文章主要介紹了Java中變量和常量詳解,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-11-11
  • Java字符流與字節(jié)流區(qū)別與用法分析

    Java字符流與字節(jié)流區(qū)別與用法分析

    這篇文章主要介紹了Java字符流與字節(jié)流區(qū)別與用法,較為詳細(xì)的分析了java字符流與字節(jié)流的概念、功能與使用方法,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2016-06-06
  • MyBatis-Plus中提供的各種注解詳細(xì)說明

    MyBatis-Plus中提供的各種注解詳細(xì)說明

    這篇文章主要介紹了MyBatis-Plus中提供的各種注解詳細(xì)說明,下面對(duì)MyBatis-Plus提供的注解進(jìn)行整理,本文提供了部分示例代碼以方便理解,需要的朋友可以參考下
    2023-11-11
  • Selenium+Tesseract-OCR智能識(shí)別驗(yàn)證碼爬取網(wǎng)頁數(shù)據(jù)的實(shí)例

    Selenium+Tesseract-OCR智能識(shí)別驗(yàn)證碼爬取網(wǎng)頁數(shù)據(jù)的實(shí)例

    本文主要介紹了Selenium+Tesseract-OCR智能識(shí)別驗(yàn)證碼爬取網(wǎng)頁數(shù)據(jù),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09

最新評(píng)論

盐源县| 乐平市| 孟津县| 新泰市| 永丰县| 安顺市| 金湖县| 香港 | 大渡口区| 冕宁县| 虹口区| 平泉县| 台东县| 正安县| 洛宁县| 繁峙县| 柏乡县| 汕头市| 西乌珠穆沁旗| 汝城县| 梓潼县| 绿春县| 会泽县| 涿鹿县| 左权县| 梁河县| 栾川县| 广昌县| 徐州市| 历史| 上杭县| 广灵县| 日土县| 新泰市| 德昌县| 桦南县| 隆昌县| 天峻县| 峨眉山市| 封丘县| 孟州市|