批量从网上下载图片、zip等文件到本地[java爬虫]

程序

public static void download(HFUTRequest httprequest,String url,String id) throws IOException{
        File fileDir=new File("E:\\zipFile");
        if(!fileDir.exists()){
            fileDir.mkdirs();
        }
        //图片或zip下载保存地址
        String filename="E:\\zipFile\\"+id+".zip";
        File file=new File(filename);
        if(file.exists()){
            file.delete();
        }
        BufferedOutputStream bw = new BufferedOutputStream(new FileOutputStream(filename)); 
        try {

            HttpEntity entity=httprequest.getEntityByHttpGetMethod(url);
            int i=-1;
            byte[] byt= EntityUtils.toByteArray(entity); 
            bw.write(byt);
            System.out.println("文件下载成功!");
        } catch (ClientProtocolException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        bw.close();
    }

解读

在上述的程序中:

byte[] byt= EntityUtils.toByteArray(entity); 

很多人提供的源码是:

byte[] byt=new byte[1024];

或者:

byte[] byt=new byte[10*1024];

有些是可行的,有些会导致下载的文件没办法解压。所以使用:

byte[] byt= EntityUtils.toByteArray(entity); 

这种方式就很完美了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值