java 从网络Url中下载文件

转自:http://blog.csdn.net/xb12369/article/details/40543649

/**
     * 从网络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.mkdir();
        }
        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{
            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
        }
    }
时间: 2024-10-17 15:47:54

java 从网络Url中下载文件的相关文章

java按http地址列表下载文件队列

本文实现的功能是通过url列表下载文件队列,http url地址如:http://172.16.53.187:8080/LiveDownServer/Media/DownloadFile?path=E%3A%2Fvideofiles%2Ftest123%2Fdevelop%2F2015%2F06%2F12%2Fts%2F12%2F20150612124328.ts 路径经过了编码,可以利用java自带函数java.net.URLDecoder.decode进行解码,解码之后添加到url列表利用H

Java访问网络url,获取网页的html代码

在Java中,Java.net包里面的类是进行网络编程的,其中,java.net.URL类和java.net.URLConection类是编程者方便地利用URL在Internet上进行网络通信.有两种方法可以用来访问Internet. 一是使用URL类的openStream()方法: openStream()方法与制定的URL建立连接并返回InputStream类的对象,以从这一连接中读取数据: openStream()方法只能读取网络资源. 二是使用URL类的openConnection()方

SpringMVC实现从磁盘中下载文件

除了文件的上传我们还需要从磁盘下载 实现文件的下载只要编写一个控制器,完成读写操作和响应头和数据类型的设置就可以了 下面演示的是从G盘imgs文件夹中下载文件 具体代码如下 1 package com.cqupt.dayday; 2 3 import org.springframework.stereotype.Controller; 4 import org.springframework.web.bind.annotation.RequestMapping; 5 6 import javax

django 中下载文件与下载保存为excel

一.django 中下载文件 在实际的项目中很多时候需要用到下载功能,如导excel.pdf或者文件下载,当然你可以使用web服务自己搭建可以用于下载的资源服务器,如nginx,这里我们主要介绍django中的文件下载. 1.前端 实现方式:a标签+响应头信息(当然你可以选择form实现) <div class="col-md-4"><a href="{% url 'download' %}" rel="external nofollow

VSTO学习笔记(四)从SharePoint 2010中下载文件

原文:VSTO学习笔记(四)从SharePoint 2010中下载文件 上一次我们开发了一个简单的64位COM加载项,虽然功能很简单,但是包括了开发一个64位COM加载项的大部分过程.本次我们来给COM加载项添加一些功能:从SharePoint 2010的文档库中下载一个Excel文档到本地. 示例代码下载 本系列所有示例代码均在 Visual Studio 2010 Ultimate RC + Office 2010 Professional Plus Beta x64 上测试通过. 1.首先

GridVIew中下载文件的方法探讨,方法(7)最佳。

(1)使用Button下载 在GridView属性中添加: OnRowCommand="GridView1_RowCommand" 在GridView的<Column>中添加: <asp:ButtonField runat="server" Text="下载" HeaderText="下载" ButtonType="Button" CommandName="DownLoad_Cl

Android从网络某个地址下载文件、写入SD卡

首先创建一个HttpDownloader类,获取下载文件的网络地址,将文件下载下来以String流的方式返回: public String download(String urlStr){ //urlStr为文件的网络地址,如http://192.168.1.105:8080/mp3/resources.xml StringBuffer sb = new StringBuffer(); String line = null; BufferedReader buffer = null; try {

通过文本或url扫描下载文件

1 package com.xxxx; 2 3 import java.io.BufferedInputStream; 4 import java.io.BufferedReader; 5 import java.io.File; 6 import java.io.FileNotFoundException; 7 import java.io.FileOutputStream; 8 import java.io.IOException; 9 import java.io.InputStreamR

VRML与JAVA在网络课件中交互运用分析

虚拟现实建模语言(Virtual Reality Modeling Language 即VRML)和Java语言都是 可执行的代码"技术,通过网络传输的只是一个很小的描述文件(指令性数据集),客户端通过本地的VRML浏览器.JAVA虚拟机交互地访问这些文件并解释执行.将Java与VRML结合,能够很好地实现网络多媒体课件技术:使用VRML进行场景构造,内嵌用Java编写的程序设计实现对象的编程行为.这使VRML在网上创建充满真实感的三维虚拟世界,为用户提供一种自然的.身临其境的体验方式,包括交互