批量从网上下载图片、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);
这种方式就很完美了。
还没有评论,来说两句吧...