Java读取并下载网络文件的方法

时间:2021-10-21 06:17:47

本文实例为大家分享了Java读取并下载网络文件的具体代码,供大家参考,具体内容如下

?
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
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