signed

QiShunwang

“诚信为本、客户至上”

转载 · java下载网络图片到本地

2021/6/3 14:05:53   来源:

java下载网络图片

需要通过第三方接口返回的图片路径来下载网络图片,通过输入流下载网络数据,再通过输出流写出数据

import java.io.*;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;

public class tupian_test {
    public static void main(String[] args) {
    	//http连接
        HttpURLConnection conn = null;
        //文件输入流
        InputStream inputStream = null;
        //缓存字节流
        BufferedInputStream bs = null;
        //文件输出流
        FileOutputStream out = null;
        try{
            File file_name = new File("E:\\test");
            if(!file_name.isDirectory()&&!file_name.exists()){
                file_name.mkdirs();
            }
            out = new FileOutputStream(file_name+"\\1.png");
            //建立连接
            URL httpurl = new URL("https://dl.pvp.xoyo.com/prod/icons/ui/image/homeland/data/source/home/furniture/statue/statue1_1_1007_p_e.prefab.png");
            conn = (HttpURLConnection) httpurl.openConnection();
            //提交表单
            conn.setRequestMethod("GET");
            conn.setDoInput(true);
            conn.setDoOutput(false);
            //post方式不能使用缓存
            conn.setUseCaches(false);
            //连接指定资源
            conn.connect();
            //获取网络输入流
            inputStream = conn.getInputStream();
            bs = new BufferedInputStream(inputStream);
            //创建一个1k的数据缓冲
            byte b[] = new byte[1024];
            //读取到的数据长度
            int len = 0;
            //开始读取
            while ((len=bs.read(b))!=-1){
                out.write(b,0,len);
            }
            System.out.println("下载完成");
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }finally{
        	try{
        		if(out!=null){
        			out.close();
        		}
        		if(bs!=null){
        			bs.close();
        		}
        		if(inputStream!=null){
        			inputStream.close();
        		}
        	}catch(Exception e2){
        		e2.printStackTrace();
        	}
        }
    }
}

参考帖子:Java从服务器下载图片保存到本地