java之http下载图片无法打开

之前下载可以,忽然之间不行了

import org.apache.commons.io.FileUtils;

public static void downReloadUrlFile(String url, String filePath) {
		try {
			URL httpurl = new URL(url);
			File out_file = new File(filePath);
			FileUtils.copyURLToFile(httpurl, out_file);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

新的下载

        String ht = "http://pi.weather.com.cn/i/product/pic/l/sevp_aoc_rdcp_sldas_ebref_achn_l88_pi_20201111071200001.png";
        String fileName = "E:/radar/chn/2020/11/11/20201111071200001.png";
downPictor(ht, fileName);

	public static void downPictor(String url,String name){
		CloseableHttpClient httpClient = null;
		InputStream inputStream = null;
		File file = null;
		try {
			httpClient = HttpClients.createDefault();
			HttpGet method = new HttpGet(url);
			HttpResponse result = httpClient.execute(method);
			inputStream = result.getEntity().getContent();
			//得到图片的二进制数据,以二进制封装得到数据,具有通用性
			byte[] data = readInputStream(inputStream);
			//new一个文件对象用来保存图片,默认保存当前工程根目录
			File imageFile = new File(name);
			if(!new File(imageFile.getParent()).exists()){
				new File(imageFile.getParent()).mkdirs();
			}
			//创建输出流
			FileOutputStream outStream = new FileOutputStream(imageFile);
			//写入数据
			outStream.write(data);
			//关闭输出流
			outStream.close();
		} catch (Exception e) {
		} finally {
			try {
				inputStream.close();
			} catch (IOException e) {

			}
			try {
				httpClient.close();
			} catch (IOException e) {

			}
		}
	}


	public static byte[] readInputStream(InputStream inStream) throws Exception{
		ByteArrayOutputStream outStream = new ByteArrayOutputStream();
		//创建一个Buffer字符串
		byte[] buffer = new byte[1024];
		//每次读取的字符串长度,如果为-1,代表全部读取完毕
		int len = 0;
		//使用一个输入流从buffer里把数据读取出来
		while( (len=inStream.read(buffer)) != -1 ){
			//用输出流往buffer里写入数据,中间参数代表从哪个位置开始读,len代表读取的长度
			outStream.write(buffer, 0, len);
		}
		//关闭输入流
		inStream.close();
		//把outStream里的数据写入内存
		return outStream.toByteArray();
	}
```java


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值