Java中用URL下载图片

        我只知道不能下载的原因是存在特殊字符,解决办法还未找到,如果有大佬的知道的话,麻烦告知一声,谢谢。

public class URLDemo {

    public static void main(String[] args) throws Exception {
        //能下载
//        URL url = new URL("https://bkimg.cdn.bcebos.com/pic/83025aafa40f4bfb1cdbae8f054f78f0f63618e5?x-bce-process=image/resize,m_lfit,w_790,limit_1/format,f_auto");
        
        //不能下载,存在特殊字符
        URL url = new URL("https://cn.bing.com/images/search?view=detailV2&ccid=uJADC%2fIU&id=DD81600752545AFE89285220EE60C092EABA4E93&thid=OIP.uJADC_IUgy_FZ0sH5yHFewHaE7&mediaurl=https%3a%2f%2ftse1-mm.cn.bing.net%2fth%2fid%2fR-C.b890030bf214832fc5674b07e721c57b%3frik%3dk0666pLAYO4gUg%26riu%3dhttp%253a%252f%252fphoto.16pic.com%252f00%252f57%252f76%252f16pic_5776826_b.jpg%26ehk%3dLqORCX6odu%252fI53UqMbTfiQRhYYLUZZadlz0XkhP90A4%253d%26risl%3d%26pid%3dImgRaw%26r%3d0&exph=665&expw=1000&q=%e6%b5%b7%e6%b4%8b&simid=608009924338285654&FORM=IRPRST&ck=E15CA9FFDA72A947A01396D1DBB71589&selectedIndex=5&ajaxhist=0&ajaxserp=0");
        String host = url.getHost();
        System.out.println(host); //获取该URL的主机名
        
        //端口号,如果未设置端口号,则返回 -1
        System.out.println(url.getPort()); //获取该URL的端口号
        
        System.out.println(url.getProtocol()); //获取该URL的协议名
        InputStream openStream = url.openStream();
        OutputStream outputStream = new FileOutputStream("D:"+File.separator+"c.jpg");
        int read = 0;
        while((read = openStream.read())!=-1) {
            outputStream.write(read);
        }
        openStream.close();
        outputStream.close();
    }

}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值