首页 > 代码库 > 爪哇国新游记之二十八----从url指定的地址下载一个文件到本地

爪哇国新游记之二十八----从url指定的地址下载一个文件到本地

package download;import java.io.File;import java.io.FileOutputStream;import java.io.InputStream;import java.io.OutputStream;import java.net.URL;import java.net.URLConnection;import java.util.zip.GZIPInputStream;/** * 从url指定的地址下载一个文件到本地 * 2014-8-5 17:28:50 * */public class Downloader{    private URL url;// 网络文件的地址    URLConnection con;// 到URL的连接    InputStream is;// 输入流        public Downloader(String urlStr,String path,String fileName) throws Exception{        url = new URL(urlStr);        con = url.openConnection();        is = con.getInputStream();                // 未取到文件        int length=con.getContentLength();        if(length==71495){            throw new Exception(urlStr+"指向的文件不存在.");        }                File folder=new File(path);        if(folder.exists()==false || folder.isFile()){            folder.mkdir();        }                String filename=path+File.separator+fileName;                String code = con.getHeaderField("Content-Encoding");        if ((null != code) && code.equals("gzip")) {            GZIPInputStream gis = new GZIPInputStream(is);            // 1K的数据缓冲            byte[] bs = new byte[1024];            // 读取到的数据长度            int len;            // 输出的文件流            OutputStream os = new FileOutputStream(filename);            // 开始读取            while ((len = gis.read(bs)) != -1) {                os.write(bs, 0, len);            }            // 完毕,关闭所有链接            gis.close();            os.close();            is.close();        } else {            // 1K的数据缓冲            byte[] bs = new byte[1024];            // 读取到的数据长度            int len;            // 输出的文件流            OutputStream os = new FileOutputStream(filename);            // 开始读取            while ((len = is.read(bs)) != -1) {                os.write(bs, 0, len);            }            // 完毕,关闭所有链接            os.close();            is.close();        }                System.out.println(filename+"已保存");    }        public static void main(String[] args) throws Exception{        new Downloader("http://b.bst.126.net/newpage/style/nblog/4007/img/top_banner.jpg","C://wallpaper//2","top_banner.jpg");    }}