Java如何实现从网络读取图片并保存至本地呢?

戚薇 Java经验 发布时间:2023-06-27 11:15:24 阅读数:1093 1
下文笔者讲述java代码从网络上读取图片并保存至本地的方法及示例分享

网络上读取图片并保存至本地的实现思路

使用HttpURLConnection对象连接指定图片地址
例:网络上读取图片并保存至本地的示例
package com.java265;  

import java.io.ByteArrayOutputStream;  
import java.io.File;  
import java.io.FileOutputStream;  
import java.io.InputStream;  
import java.net.HttpURLConnection;  
import java.Net.URL;  
public class ImageRequest {  
     
 public static void main(String[] args) throws Exception {  
	 //new一个URL对象  
	 URL url = new URL("http://www.java265.com/*******.jpg");  
	 //打开链接  
	HttpURLConnection conn = (HttpURLConnection)url.openConnection();  
	 //设置请求方式为"GET"  
	conn.setRequestMethod("GET");  
	 //超时响应时间为5秒  
	 conn.setConnectTimeout(5 * 1000);  
	//通过输入流获取图片数据  
	 InputStream inStream = conn.getInputStream();  
	//得到图片的二进制数据,以二进制封装得到数据,具有通用性  
	 byte[] data = readInputStream(inStream);  
	 //new一个文件对象用来保存图片,默认保存当前工程根目录  
	 File imageFile = new File("BeautyGirl.jpg");  
	 //创建输出流  
	FileOutputStream outStream = new FileOutputStream(imageFile);  
	 //写入数据  
   outStream.write(data);  
	 //关闭输出流  
	 outStream.close();  
 }  

 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();  
 }  
}  
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaJingYan/202306/16878357586912.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者