首页 > 编程语言 >java下载pdf等静态文件

java下载pdf等静态文件

时间:2022-10-24 01:22:05浏览次数:38  
标签:java 静态 os bs len import pdf new

package com.example.climbnumber;
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;

public class Test02 {

    public static void main(String[] args) {
        try {
            download("https://disclosure.shcpe.com.cn//cpec-ent/file/20220508/1652002109174%E6%88%AA%E8%87%B32022%E5%B9%B44%E6%9C%8830%E6%97%A5%E6%8C%81%E7%BB%AD%E9%80%BE%E6%9C%9F%E5%90%8D%E5%8D%95.pdf", "C:\\Users\\13560\\Desktop\\12.pdf");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    /**
     * 下载文件到本地
     * @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();
        }
    }
}

标签:java,静态,os,bs,len,import,pdf,new
From: https://www.cnblogs.com/fuqian/p/16820212.html

相关文章

  • 论 C++、C、Go 和 Java 的最大不同
     一、C++、C、Go中的如下语句:structxxx s1;vector<int>v;(甚至会调构造函数!)varABCsomeType其实会创建一个能用的对象!!、之后用他们进行操作......
  • 小白学习之路--java开发环境
    开发环境安装jdk市面企业主流还是jdk8我这就随便提供一个链接,网上实在是太多了,随便百度,面向百度编程jdk安装教程这个大佬写的挺全的IDE这个ide的话,我接触的有id......
  • Java异常的捕获和处理
    ......
  • 多测师肖sir____java自动化测试____基础介绍
    一、基础介绍1、为什么要做自动化测试(1)高级技能,发展趋势(2)提高代码的使用率(3)节省回归时间2、怎么去学习自动化测试(1)先学一门编程语言3、web自动化测试?定义:模拟手......
  • JAVA--LinkedList底层双链表添加元素超详细
     集合里面存储的都是对象    添加第一个元素    添加第二个元素    依次往后添加对象/元素。   first指向linkedList集合里存储的第......
  • 小白学习之路--java特性
    java特性总结一下java的特性简单性没啥好说的,它对c++进行再度封装,摒弃了c里面难懂的指针引用,还不用去分配内存,有了垃圾回收机制,不需要程序员手动回收内存面向对象......
  • hands-on design patterns with c++ 电子书 pdf
    作者:FedorGPikus出版社:PacktPublishing-ebooksAccount副标题:MastertheDesignPatternstocreaterobust,reusableandeasilymaintainableapps 链接:h......
  • 【Java】再说下Java多态中的向上转型和向下转型
    做比较多的服务端接口测试后,如果是http接口,使用jmeter、postman工具来测试都是比较方便的。如果是RPC接口,使用以上的工具就会比较吃力了。如果你对Java语言比较熟悉,建议可以......
  • Java关键字(五)——this
    this也是Java中的一个关键字,在《Java编程思想》第四版第五章5.4小节对this关键字是这样介绍的:this关键字只能在方法内部使用,表示对“调用方法的那个对象”的引......
  • android实现pdf阅读器
    添加依赖implementation'com.github.barteksc:android-pdf-viewer:3.1.0-beta.1'MainActivity文件importandroidx.appcompat.app.AppCompatActivity;importan......