欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

步驟:

1.新建一個download類

2.在類中建立一個下載方法

下載方法需要接收2個變量,一個是url下載地址,一個是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)建一個線程類

步驟:

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

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

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

4.重寫Thread父類的run方法

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

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)建線程并啟動

步驟:

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

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

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

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

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

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

3.用start開啟3個線程

start方法會開啟新的線程,并且在新的線程中調(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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java Fluent Mybatis實(shí)戰(zhàn)之構(gòu)建項(xiàng)目與代碼生成篇上

    Java Fluent Mybatis實(shí)戰(zhàn)之構(gòu)建項(xiàng)目與代碼生成篇上

    Java中常用的ORM框架主要是mybatis, hibernate, JPA等框架。國內(nèi)又以Mybatis用的多,基于mybatis上的增強(qiáng)框架,又有mybatis plus和TK mybatis等。今天我們介紹一個新的mybatis增強(qiáng)框架 fluent mybatis
    2021-10-10
  • Java使用JDBC實(shí)現(xiàn)Oracle用戶認(rèn)證的方法詳解

    Java使用JDBC實(shí)現(xiàn)Oracle用戶認(rèn)證的方法詳解

    這篇文章主要介紹了Java使用JDBC實(shí)現(xiàn)Oracle用戶認(rèn)證的方法,結(jié)合實(shí)例形式分析了java使用jdbc實(shí)現(xiàn)數(shù)據(jù)庫連接、建表、添加用戶、用戶認(rèn)證等操作流程與相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2017-08-08
  • java8中forkjoin和optional框架使用

    java8中forkjoin和optional框架使用

    這篇文章主要介紹了java8中forkjoin和optional框架使用心得以及用法講解,需要的朋友參考下吧。
    2017-12-12
  • 聊聊Redis的單線程模型

    聊聊Redis的單線程模型

    Redis是單線程,主要是指Redis的網(wǎng)絡(luò)IO和讀寫是由一個線程來完成的,但Redis的其他功能,比如持久化、異步刪除、集群數(shù)據(jù)同步等,其實(shí)是由額外的線程執(zhí)行的。這不是本文討論的重點(diǎn),有個印象即可
    2022-12-12
  • java new一個對象的過程實(shí)例解析

    java new一個對象的過程實(shí)例解析

    這篇文章主要介紹了java new一個對象的過程實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-12-12
  • Spring BeanFactory和FactoryBean區(qū)別解析

    Spring BeanFactory和FactoryBean區(qū)別解析

    這篇文章主要介紹了Spring BeanFactory和FactoryBean區(qū)別解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-03-03
  • Java精品項(xiàng)目瑞吉外賣之后端登錄功能篇

    Java精品項(xiàng)目瑞吉外賣之后端登錄功能篇

    這篇文章主要為大家詳細(xì)介紹了java精品項(xiàng)目-瑞吉外賣訂餐系統(tǒng),此項(xiàng)目過大,分為多章獨(dú)立講解,本篇內(nèi)容為后端登錄功能的實(shí)現(xiàn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • java計(jì)算自然數(shù)中的水仙花數(shù)的方法分享

    java計(jì)算自然數(shù)中的水仙花數(shù)的方法分享

    這篇文章主要介紹了java計(jì)算自然數(shù)中的水仙花數(shù)的方法,需要的朋友可以參考下
    2014-03-03
  • java實(shí)現(xiàn)簡單三子棋游戲

    java實(shí)現(xiàn)簡單三子棋游戲

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)簡單三子棋游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • MyBatis的@SelectProvider注解構(gòu)建動態(tài)SQL方式

    MyBatis的@SelectProvider注解構(gòu)建動態(tài)SQL方式

    這篇文章主要介紹了MyBatis的@SelectProvider注解構(gòu)建動態(tài)SQL方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08

最新評論