下载器原理

317 阅读1分钟

从网上下载到本地

package com;

import java.io.*;
import java.net.URL;

/**
 * @Author: gosang
 * @DateTime: 2020/5/13 23:13
 * @Description: TODO
 */
public class URLTest {
    public static void main(String[] args) throws Exception{
        URL url = new URL("https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1589393029407&di=196714aceb2b8af18a3ace4b4b5adbcd&imgtype=0&src=http%3A%2F%2F5b0988e595225.cdn.sohucs.com%2Fq_70%2Cc_zoom%2Cw_640%2Fimages%2F20180826%2F5e3cc526f8974a20ba128665f29cec59.jpeg");
        InputStream inputStream = null;
        Reader reader = null;
        BufferedReader bufferedReader = null;

        inputStream = url.openStream();
        reader = new InputStreamReader(inputStream);
        bufferedReader = new BufferedReader(reader);

        /*String str = null;
        while ((str = bufferedReader.readLine())!=null){
            System.out.println(str);
        }*/

        OutputStream outputStream = new FileOutputStream("C:\\Users\\Administrator\\Desktop\\123.jpg");
        int temp;
        while((temp = inputStream.read())!= -1){
            outputStream.write(temp);
        }

        outputStream.close();
        inputStream.close();
        reader.close();
        bufferedReader.close();
    }
}

)

UrlConnection

package com;

import java.net.URL;
import java.net.URLConnection;

/**
 * @Author: gosang
 * @DateTime: 2020/5/13 23:41
 * @Description: TODO
 */
public class UrlConnectionTest{
    public static void main(String[] args)throws Exception {
        URL url = new URL("https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1589393029407&di=196714aceb2b8af18a3ace4b4b5adbcd&imgtype=0&src=http%3A%2F%2F5b0988e595225.cdn.sohucs.com%2Fq_70%2Cc_zoom%2Cw_640%2Fimages%2F20180826%2F5e3cc526f8974a20ba128665f29cec59.jpeg");

        URLConnection urlConnection = url.openConnection();
        System.out.println(url.getHost());
        System.out.println(url.getContent());
        System.out.println(url.getPort());//-1.java.net.URL.getPort()规定,若URL的实例未申明(省略)端口号,则返回值为-1。
        System.out.println(url.getAuthority());
        System.out.println("=========");
        System.out.println(urlConnection.getContentType());
        System.out.println(urlConnection.getContentLength());

    }
}