gpt4 book ai didi

Java多线程下载网图的完整案例

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 30 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章Java多线程下载网图的完整案例由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

java多线程下载网图案例 。

此案例依赖——文件操作工具类(fileutils) 。

使用 apache 的commons-io包下的fileutilsimportorg.apache.commons.io.fileutils,

下载commons-io包 。

官方API文档 。

点击即可下载,然后导入idea的库中或者项目中.

Java多线程下载网图的完整案例

导包 。

Java多线程下载网图的完整案例

首先创建一个下载器

步骤:

1.新建一个download类 。

2.在类中建立一个下载方法 。

下载方法需要接收2个变量,一个是url下载地址,一个是name文件名称 。

3.在下载方法中调用文件操作工具类(fileutils) 。

4.try/catch捕获异常并提示异常 。

方法 说明
copyurltofile(url source, file destination) 将字节从url复制source到文件中 destination。
?
1
2
3
4
5
6
7
8
9
10
11
12
//下载器
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个私有变量传入进去,最后给个提示,打印出下载的文件名称.

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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方法中创建线程并启动

步骤:

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方法 。

?
1
2
3
4
5
6
7
8
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();
   }

全部代码:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
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多线程下载网图的完整案例

下载的文件默认位置在项目下如图:

Java多线程下载网图的完整案例

双击图片文件可进行查看 。

Java多线程下载网图的完整案例

总结

到此这篇关于java多线程下载网图的文章就介绍到这了,更多相关java多线程下载网图内容请搜索我以前的文章或继续浏览下面的相关文章希望大家以后多多支持我! 。

原文链接:https://blog.csdn.net/qq_31762741/article/details/115258747 。

最后此篇关于Java多线程下载网图的完整案例的文章就讲到这里了,如果你想了解更多关于Java多线程下载网图的完整案例的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com