Java开发

Jsoup的使用教程(5)-响应转输出流(图片、PDF等的下载)

2025-01-22 25 0

简介 Jsoup的使用教程-响应转输出流(图片、PDF等的下载)

使用 Jsoup 下载图片、PDF 和压缩等文件时,需要将响应转化成输出流。转化成 输出流的目的是增强写文件的能力,即以字节为单位写入指定文件。

以图片下载为例,使用 bodyStream()方法将响应转化成输出流,并以缓 冲流的方式写入指定文件。另外,针对图片和 PDF 等文件,在执行 URL 请求获取 Response 时,必须通过 ignoreContentType(boolean ignoreContentType)方法设置忽略响 应内容的类型,否则会报错。

public class JsoupConnectInputstream {
    public static void main(String[] args) throws IOException {
        String imageUrl = "http://i-4.******.com/2018/6/11/KDE5Mngp/ae0c2d4d-04fb-4066-872c-a8c7a7c4ea4f.jpg";
        Connection connect = Jsoup.connect(imageUrl);
        Connection.Response response = connect.method(Connection.Method.GET).
                ignoreContentType(true).execute();
        System.out.println("文件类型为:" + response.contentType());
        //响应转化成输出流
        BufferedInputStream bufferedInputStream = response.
                bodyStream();
        //保存图片
        saveImage(bufferedInputStream,"image/1.jpg");
    }


    /**
     * 保存图片操作
     * @param in  输入流
     * @param savePath 保存的文件目录
     * @throws IOException
     */
    static void saveImage(BufferedInputStream in, String savePath) throws IOException {
        byte[] buffer = new byte[1024];
        int len = 0;
        //创建缓冲流
        FileOutputStream fileOutStream = new FileOutputStream(new File(savePath));
        BufferedOutputStream bufferedOut = new BufferedOutputStream(fileOutStream);
        //图片写入
        while ((len = in.read(buffer, 0, 1024)) != -1) {
            bufferedOut.write(buffer, 0, len);
        }
        //缓冲流释放与关闭
        bufferedOut.flush();
        bufferedOut.close();
    }
}


点赞 0

我的名片

网名:梦宇信息技术

职业:软件开发、Mes系统工程师

现居:福建省-福州市

QQ:703159

站点信息

  • 联系QQ:703159
  • 文章统计97篇文章
  • 标签总数6
  • 加我微信:扫码,加我微信