Java多線程下載網(wǎng)圖的完整案例
Java多線程下載網(wǎng)圖案例
此案例依賴——文件操作工具類(FileUtils)
使用 apache 的commons-io包下的FileUtilsimportorg.apache.commons.io.FileUtils;
下載commons-io包
官方API文檔
點(diǎn)擊即可下載,然后導(dǎo)入IDEA的庫(kù)中或者項(xiàng)目中。
導(dǎo)包
步驟:
1.新建一個(gè)download類
2.在類中建立一個(gè)下載方法
下載方法需要接收2個(gè)變量,一個(gè)是url下載地址,一個(gè)是name文件名稱
3.在下載方法中調(diào)用文件操作工具類(FileUtils)
4.try/catch捕獲異常并提示異常
方法 說(shuō)明 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)問(wèn)題'); } }}然后創(chuàng)建一個(gè)線程類
步驟:
1.創(chuàng)建線程類-多線程下載器,繼承Thread類
2.定義2個(gè)私有變量(url下載地址,name文件名稱)
3.創(chuàng)建有參數(shù)構(gòu)造器(用于初始化2個(gè)私有變量的值)
4.重寫(xiě)Thread父類的run方法
run方法的方法體內(nèi)寫(xiě)入要執(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 多線程下載器('https://www.baidu.com/favicon.ico','百度.ico');多線程下載器 t2=new 多線程下載器('https://www.apple.com/favicon.ico','蘋(píng)果.ico');多線程下載器 t3=new 多線程下載器('https://www.jd.com/favicon.ico','京東.ico');
3.用start開(kāi)啟3個(gè)線程
start方法會(huì)開(kāi)啟新的線程,并且在新的線程中調(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','蘋(píng)果.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','蘋(píng)果.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)問(wèn)題'); } }}
運(yùn)行結(jié)果:
下載的文件默認(rèn)位置在項(xiàng)目下如圖:
雙擊圖片文件可進(jìn)行查看
到此這篇關(guān)于Java多線程下載網(wǎng)圖的文章就介紹到這了,更多相關(guān)Java多線程下載網(wǎng)圖內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. ASP動(dòng)態(tài)網(wǎng)頁(yè)制作技術(shù)經(jīng)驗(yàn)分享2. phpstudy apache開(kāi)啟ssi使用詳解3. JSP之表單提交get和post的區(qū)別詳解及實(shí)例4. Xml簡(jiǎn)介_(kāi)動(dòng)力節(jié)點(diǎn)Java學(xué)院整理5. 詳解瀏覽器的緩存機(jī)制6. 如何在jsp界面中插入圖片7. jsp實(shí)現(xiàn)登錄驗(yàn)證的過(guò)濾器8. jsp文件下載功能實(shí)現(xiàn)代碼9. .Net Core和RabbitMQ限制循環(huán)消費(fèi)的方法10. 存儲(chǔ)于xml中需要的HTML轉(zhuǎn)義代碼
