Java读取并下载网络文件的方法
作者:Marydon 发布时间:2023-03-18 11:47:05
标签:java,读取,下载,网络文件
本文实例为大家分享了Java读取并下载网络文件的具体代码,供大家参考,具体内容如下
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
/**
* Java读取并下载网络文件
* @author Marydon
* @createTime 2017年8月18日下午5:24:09
* @updateTime
* @Email:marydon2017@163.com
* @version:1.0.0
* @referenceLink
* <a href="http://blog.csdn.net/xb12369/article/details/40543649/"> java 从网络Url中下载文件</a>
*/
public class DownloadFromNetwork {
/**
* 从网络Url中下载文件
* @param urlStr
* @param fileName
* @param savePath
* @throws IOException
*/
public static void downLoadFromUrl(String urlStr,String fileName,String savePath) throws IOException{
URL url = new URL(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 = new File(savePath);
if(!saveDir.exists()){
saveDir.mkdirs();
}
File file = new File(saveDir+File.separator+fileName);
FileOutputStream fos = new FileOutputStream(file);
fos.write(getData);
if(fos!=null){
fos.close();
}
if(inputStream!=null){
inputStream.close();
}
System.out.println("info:"+url+" download success");
}
/**
* 从输入流中获取字节数组
* @param inputStream
* @return
* @throws IOException
*/
public static byte[] readInputStream(InputStream inputStream) throws IOException {
byte[] buffer = new byte[1024];
int len = 0;
ByteArrayOutputStream bos = new ByteArrayOutputStream();
while((len = inputStream.read(buffer)) != -1) {
bos.write(buffer, 0, len);
}
bos.close();
return bos.toByteArray();
}
public static void main(String[] args) {
try{
for (int i = 201; i <=520; i++) {
downLoadFromUrl("https://ss1.bdstatic.com/kvoZeXSm1A5BphGlnYG/skin/" + i + ".jpg",i + ".jpg","E:/Downloads/wallpaper/baiduSkin");
}
}catch (Exception e) {
// TODO: handle exception
}
}
}
来源:http://www.cnblogs.com/Marydon20170307/p/7402871.html


猜你喜欢
- 女朋友他们项目用了 spring-boot,以 spring-boot-parent 作为 parent:<parent> &l
- Collections工具类Java里关于聚合的工具类,包含有各种有关集合操作的静态多态方法,不能实例化(把构造函数私有化)public c
- Control.Invoke 方法 (Delegate) :在拥有此控件的基础窗口句柄的线程上执行指定的委托。Control.BeginIn
- 在action中存放数据,代码如下:@Controller // 加入到IOC容器//@RequestMapping(value="
- 目录1、需求2、问题2、获取1)导入依赖为了获取客户端类型、操作系统类型、ip、port2)封装获取body字符串的工具类3) * 类4)继
- 最近在做项目的时候有用到对两个集合中的元素进行对比求其交集的情况,因为涉及到的数据量比较大,所以在进行求两个集合中元素交集的时候,就应该考虑
- 这篇文章主要介绍了springboot自定义异常视图过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需
- AOP我想大家都很清楚,有时候我们需要处理一些请求日志,或者对某些方法进行一些监控,如果出现例外情况应该进行怎么样的处理,现在,我们从spr
- 本文将介绍通过Java程序来读取PDF文档中的文本和图片的方法。分别调用方法extractText()和extractImages()来读取
- 三种得到LinearInflater的方法a. LayoutInflater inflater = getLayoutInflater();
- 一直以来做对外的接口文档都比较原始,基本上都是手写的文档传来传去,最近发现了一个新玩具,可以在接口上省去不少麻烦。swagger是一款方便展
- 写在前面元旦三天在家闲着无事,就看了看Linq的相关内容,也准备系统的学习一下,作为学习Linq的前奏,还是先得说说Lambda与匿名方法的
- 不用Spring管理事务?让我们先来看一下不用spring管理事务时,各种框架是如何管理事务的使用JDBC来管理事务使用Hibernate来
- JPA @Basic单表查询实现大字段懒加载近期看了JPA@Basic注解的使用,看到该注解可以设置字段的懒加载。1.以前碰到的懒加载:我们
- 看书的时候被一段代码能凌乱啦,代码是这样的:package 继承;abstract class People {
- a.在.xaml文件中拖入一个datagrid,然后添加列名,使用Binding="{Binding 数据库中的列名称}"
- 本文介绍了Spring Boot 部署jar和war两种方式的区别,分享给大家,具体如下:1、 packaging的方式不同,一种设置成ja
- 一 概述CMDD:\Project\Computer-Science-And-Technology\writeExam\farben\src
- ReferenceWhy using finalizers is a bad idea当在一个类中使用了另外一个实现了IDisposable
- 很多时候你新建了Maven 或者SpringBoot 工程,激动的点了主启动类,你就发现了下面的错误这里说的是啥意思呢,你没有数据库相关的链