手把手教你用java完成文件、图片下载

package Kj;
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;

/**
 * 下载 工具类
 * 
 * @author wuming
 */
public class Demo1 {
              
     
    /**
     * 下载文件到本地
     * @author wuming
     * @date 2021年11月23日 上午19:20:05
     * @param urlString
     * @param filename
     * @throws Exception
     */
    public static void download(String urlString, String filename) throws Exception {
        URL url = new URL(urlString);// 构造URL
        URLConnection con = url.openConnection();// 打开连接
        InputStream is = con.getInputStream();// 输入流
        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();
        }
    }
     
    public static void main(String[] args) {
        try {
          // download("https://img.vgc.cn/dc/file/bigpic/2019-08-16/06/06494614368.jpg", "D:\\wg\\xiazia\\pic_txt_xiazia\\10.jpg");
          // download("https://pcclient.download.youku.com/youkuclient/youkuclient_setup_8.0.9.11050.exe?spm=a2hcb.25507605.product.1&file=youkuclient_setup_8.0.9.11050.exe", "D:\\wg\\xiazia\\pic_txt_xiazia\\1.exe");       
          download("  https://www.cs.tsinghua.edu.cn/__local/4/A5/88/41B9242401AE4D1F19EA8519BB5_0EDFFEE5_34804.pdf", "D:\\wg\\xiazia\\pic_txt_xiazia\\55.pdf");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
 
}

//去D:\\wg\\xiazia\\pic_txt_xiazia看,完成。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/525044.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python-PIL

PIL库是python里自带的库,用的最多的就是里面的Image方法了 讲讲最简单的Image知识: Image.open(‘xxx.jpg’):它将会打开一张图片 Image.tell():这是找到GIF的帧数 Image.seek():这个代码为取当前帧数的照片 getpixe…

CloudNative时代践行DevOps躲坑指南

戳蓝字“CSDN云计算”关注我们哦!2015年,谷歌成立了原生云计算基金会,标志着CloudNative时代的来临。它以容器化封装、自动化管理、面向微服务等特点,向人们展示了应用云化开发的新模式。在业界,DevOps全栈开发运维模式…

数组:三种初始化及内存分析

java内存分析: 1.堆:存放new的对象和数组 2.栈:存放进本变量类型 3.方法区:class、static package com.wuming.struct; public class Demo08 { public static void main(String[] args) { //静态初始化&#xff…

BugkuCTF-MISC题简单套娃

打开题目,是一个图片。 丢进010发现有两个jpg头 把第二个FFD8FFE0后面一起复制下来,另存为一个新的图片。 丢进StegSolve,发现别的图层存在flag。 点击下方的左右箭头变换, 若flag实在看不清,两张图放进Stegsolve的Ima…

资源 | Alibaba Cluster Data 开放下载:270 GB 数据揭秘你不知道的阿里巴巴数据中心...

戳蓝字“CSDN云计算”关注我们哦!CSDN云计算授权转载自阿里系统软件技术作者:临石打开一篇篇 IT 技术文章,你总能够看到“大规模”、“海量请求”这些字眼。如今,这些功能强大的互联网应用,都运行在大规模数据中心上。…

数组下标越界及小结

package com.wuming.struct;public class Demo09 {public static void main(String[] args) {int[] a{1,2,3,4,5,6,7,8};for (int i 0; i <a.length; i) {//去掉&#xff0c;下标越界&#xff0c;数组下标为[0&#xff0c;length-1]System.out.println(a[i]);}} }1 2 3 4 5…

C语言 strcpy 和 strcpy_s 函数区别 - C语言零基础入门教程

目录 一.strcpy_s 函数/strcpy 函数简介 1.strcpy 函数语法2.strcpy_s 函数语法 二.strcpy/strcpy_s 函数实战三.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 语言基础入门 一.strcpy_s 函数/strcpy 函数简介 1.strcpy函数语法 /* *描述&#xff1a;此类函…

BugkuCTF-MISC题可爱的故事

下载文件&#xff0c;打开两张图片 根据评论提示是原神里面的提瓦特字母 题目的提示说flag就藏在图片特殊文字里&#xff0c;还提到谷歌翻译&#xff0c;开始以为要把文字翻译成我们认识的&#xff0c;结果半天提取不出来文字&#xff0c;看了其他暗示&#xff0c;才知道这是类…

漫画:如何实现大整数相乘?(下)

戳蓝字“CSDN云计算”关注我们哦&#xff01;如何用程序实现大整数相乘呢&#xff1f;在上一篇文章 漫画&#xff1a;如何实现大整数相乘&#xff1f;&#xff08;上&#xff09; 当中&#xff0c;我们介绍了两种思路&#xff1a;1.像列竖式一样&#xff0c;把两整数按位依次相…

成员变量(全局变量)和局部变量区别

1.成员变量&#xff08;全局变量&#xff09;在类中&#xff0c;方法外&#xff0c;可用修饰符修饰 2.局部变量在方法中&#xff0c;不可用修饰符修饰

C语言 memcpy 和 strcpy 函数区别 - C语言零基础入门教程

目录 一.memcpy 函数/strcpy 函数简介二.memcpy 函数/strcpy 函数实战 1.strcpy 函数属于字符串拷贝2.memcpy 函数属于内存拷贝 三.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 语言基础入门 一.memcpy 函数/strcpy 函数简介 C 语言在 string.h 中 strcpy 函…

BugkuCTF-MISC题宽带信息泄露

下载文件conf.zip&#xff0c;解压得出conf.bin 在端输入strings conf.bin没有flag 此题需要路由器配置文件查看工具RouterPassView 下载此工具 在终端输入wine RouterPassView.exe(wine即在linux系统里打开exe程序文件) 查找username 提交flag{053700357621}成功

全世界的程序员们,为什么都不在意“穿衣”这档事?

戳蓝字“CSDN云计算”关注我们哦&#xff01;十月份我去北京出差&#xff0c;来到后厂村走了一圈&#xff0c;想看看现实中的北京程序员是否真的像之前刷屏的《互联网公司时尚穿搭指南》中所述&#xff0c;存在“天然结界”。到的时候正好是午休时间&#xff0c;一下车就在某巨…

C语言 memcpy和memcpy_s区别 - C语言零基础入门教程

目录 一.memcpy 和 memcpy_s 函数区别 1.语法对比 memcpy_s 函数语法memcpy 函数语法 2.memcpy 和 memcpy_s 相同点3.memcpy 和 memcpy_s 不同点 1.memcpy 函数报错&#xff1a;error C49962.memcpy 函数没有方法来保证有效的缓冲区尺寸&#xff0c;使用不安全 三.memcpy 和 …

BugkuCTF-MISC题猫片

python知识点 ^是按位异或操作符 [::-1]能令列表反向 解题流程 题目提示&#xff1a;LSB BGR NTFS 下载之后就是一个叫png的文件&#xff0c;没有后缀&#xff0c;那么加后缀 打开Stegsolve直接就Analyse-----Data Extract&#xff0c;根据提示LSB,BGR,一顿尝试 发现了PN…

等了20年的物联网,这次真的会成功吗?

戳蓝字“CSDN云计算”关注我们哦&#xff01;最近几年&#xff0c;物联网的概念非常火爆&#xff0c;和物联网相关的技术&#xff0c;例如NB-IoT、LoRa、eMTC等&#xff0c;都频繁地出现在我们的眼前&#xff0c;出现在新闻里&#xff0c;出现在展会上。其实&#xff0c;「物联…

手把手教你数组反转

package com.wuming.struct;public class Demo12 {public static void main(String[] args) {int[] arrays{1,2,3,4,5};/* //JDk1.5&#xff0c;没有下标for (int array : arrays) {System.out.println(array);}*/// printArray(arrays);int[] reverse reverse(arrays);pri…

BugkuCTF-MISC题妹子的陌陌

下载图片 通过010editor查找并未发现有价值的信息 通过binwalk -e file.jpg分离出文件夹_file.jpg.extracted 里有91DC.rar&#xff0c;解压发现需要密码&#xff0c;通过爆破找不到密码 在file.jpg图片里有“喜欢我吗.”&#xff0c;将其输入到解压密码里 发现竟成功解压 得到…

深入理解与应用Hadoop中的MapReduce

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者&#xff1a;安静的技术控 来源&#xff1a;CSDN 原文&#xff1a;https://blog.csdn.net/a2011480169/article/details/52924955 版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请附上博文链接&#xff01;现在大数据…

手把手教你二维数组打印

package com.wuming.struct;public class Demo13 {//多维数组&#xff1a;特殊的以为数组//二维数组&#xff1a;int a[][]new int[a][b],当成一维数组打印public static void main(String[] args) {int[][] array{{1,2},{2,3},{3,4},{4,5}};for (int i 0; i < array.lengt…