此方法可以采集图片,音频,视频等资源
public String downLoadFromUrl(String urlStr, String fileName, String savePath) throws IOException {
URL url = new URL(urlStr);HttpURLConnection conn = (HttpURLConnection) url.openConnection();
// 设置超时间为3秒
conn.setConnectTimeout(5 * 1000);
// 防止屏蔽程序抓取而返回403错误
conn.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");
// 得到输入流
InputStream inputStream = conn.getInputStream();
HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
String type = HttpURLConnection.guessContentTypeFromStream(inputStream);
int flagIndex = type.indexOf("/");
String imageType = type.substring(flagIndex + 1);
if (!imageType.equals("gif")) {
imageType = "jpg";
}
// 获取自己数组
byte[] getData = readInputStream(inputStream);
// 文件保存位置
File saveDir = new File(savePath);
if (!saveDir.exists()) {
saveDir.mkdir();
}
File file = new File(saveDir + File.separator + fileName + "." + imageType);
FileOutputStream fos = new FileOutputStream(file);
fos.write(getData);
if (fos != null) {
fos.flush();
fos.close();
}
if (inputStream != null) {
inputStream.close();
}
log.error("info:" + savePath + "/" + fileName + "." + imageType + " download success");
return imageType;
}
public byte[] readInputStream(InputStream inputStream) throws IOException {
byte[] buffer = new byte[1024];
int len = 0;
ByteArrayOutputStream bos = new ByteArrayOutputStream();
while ((len = inputStream.read(buffer)) != -1) {
bos.write(buffer, 0, len);
}
bos.close();
return bos.toByteArray();
}