java url 批量下载_java+根据多个url批量下载文件

本文详细介绍了如何使用Java从URL下载文件,包括基本流程和具体实现代码。步骤包括发起URL请求、服务器解析并返回输入流、建立存储路径、读取并保存数据,最后关闭流。提供的代码示例展示了整个下载过程,适用于进行网络资源下载的场景。
摘要由CSDN通过智能技术生成

1.基本流程

当我们想要下载网站上的某个资源时,我们会获取一个url,它是服务器定位资源的一个描述,下载的过程有如下几步:

(1)客户端发起一个url请求,获取连接对象。

(2)服务器解析url,并且将指定的资源返回一个输入流给客户。

(3)建立存储的目录以及保存的文件名。

(4)输出了写数据。

(5)关闭输入流和输出流。

2.实现代码的方法

/**

*从网络Url中下载文件

*@paramurlStr

*@paramfileName

*@paramsavePath

*@throwsIOException

*/

public static voiddownLoadFromUrl(String urlStr,String fileName,String savePath)throwsIOException{

URL url =newURL(urlStr);

HttpURLConnection conn = (HttpURLConnection)url.openConnection();

//设置超时间为3秒

conn.setConnectTimeout(3*1000);

//防止屏蔽程序抓取而返回403错误

conn.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");

//得到输入流

InputStream inputStream = conn.getInputStream();

//获取自己数组

byte[] getData = readInputStream(inputStream);

//文件保存位置

File saveDir =newFile(savePath);

if(!saveDir.exists()){

saveDir.mkdir();

}

File file =newFile(saveDir+File.separator+fileName);

FileOutputStream fos =newFileOutputStream(file);

fos.write(getData);

if(fos!=null){

fos.close();

}

if(inputStream!=null){

inputStream.close();

}

System.out.println("info:"+url+" download success");

}

/**

*从输入流中获取字节数组

*@paraminputStream

*@return

*@throwsIOException

*/

public static byte[] readInputStream(InputStream inputStream)throwsIOException {

byte[] buffer =new byte[1024];

intlen = 0;

ByteArrayOutputStream bos =newByteArrayOutputStream();

while((len = inputStream.read(buffer)) != -1) {

bos.write(buffer, 0, len);

}

bos.close();

returnbos.toByteArray();

}

public static voidmain(String[] args) {

try{

downLoadFromUrl("http://101.95.48.97:8005/res/upload/interface/apptutorials/manualstypeico/6f83ce8f-0da5-49b3-bac8-fd5fc67d2725.png",

"百度.jpg","d:/resource/images/diaodiao/country/");

}catch(Exception e) {

// TODO: handle exception

}

}

效果展现:

a399bd899caed83fee57d7d47a7e9d83.png

详细配置可参考我写的这篇文章:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值