您好,登錄后才能下訂單哦!
小編給大家分享一下Java多線程下載網圖的示例分析,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
此案例依賴——文件操作工具類(FileUtils)
使用 apache 的commons-io包下的FileUtilsimportorg.apache.commons.io.FileUtils;
下載commons-io包
點擊即可下載,然后導入IDEA的庫中或者項目中。
導包
步驟:
1.新建一個download類
2.在類中建立一個下載方法
下載方法需要接收2個變量,一個是url下載地址,一個是name文件名稱
3.在下載方法中調用文件操作工具類(FileUtils)
4.try/catch捕獲異常并提示異常
方法 | 說明 |
---|---|
copyURLToFile(URL source, File destination) | 將字節從URL復制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方法出現問題"); } } }
步驟:
1.創建線程類-多線程下載器,繼承Thread
類
2.定義2個私有變量(url下載地址,name文件名稱)
3.創建有參數構造器(用于初始化2個私有變量的值)
4.重寫Thread父類的run方法
run方法的方法體內寫入要執行的任務,我們的任務就是要下載網圖,因為要用到下載器里面的下載方法,所以直接實例化download類,然后調用download類中的down方法,由于down方法需要接受2個String類型的變量(url和name),直接將2個私有變量傳入進去,最后給個提示,打印出下載的文件名稱。
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); } }
步驟:
1.創建一個main方法
2.創建3個線程
創建線程的時候要傳入參數,目的是調用有參構造器初始化私有變量
這里傳入3個圖片的地址以及文件的名稱
注意文件名稱,下載的文件類型要對應好相應的后綴名
多線程下載器 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");
3.用start開啟3個線程
start方法會開啟新的線程,并且在新的線程中調用線程類中的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方法出現問題"); } } }
運行結果:
下載的文件默認位置在項目下如圖:
雙擊圖片文件可進行查看
看完了這篇文章,相信你對“Java多線程下載網圖的示例分析”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。