zoukankan      html  css  js  c++  java
  • Java从网络读取图片并保存至本地

     1 package cn.cctv.NET;  
     2 import java.io.ByteArrayOutputStream;  
     3 import java.io.File;  
     4 import java.io.FileOutputStream;  
     5 import java.io.InputStream;  
     6 import java.net.HttpURLConnection;  
     7 import java.Net.URL;  
     8 public class ImageRequest {  
     9     /** 
    10      * @param args 
    11      */  
    12     public static void main(String[] args) throws Exception {  
    13         //new一个URL对象  
    14         URL url = new URL("http://img.hexun.com/2011-06-21/130726386.jpg");  
    15         //打开链接  
    16         HttpURLConnection conn = (HttpURLConnection)url.openConnection();  
    17         //设置请求方式为"GET"  
    18         conn.setRequestMethod("GET");  
    19         //超时响应时间为5秒  
    20         conn.setConnectTimeout(5 * 1000);  
    21         //通过输入流获取图片数据  
    22         InputStream inStream = conn.getInputStream();  
    23         //得到图片的二进制数据,以二进制封装得到数据,具有通用性  
    24         byte[] data = readInputStream(inStream);  
    25         //new一个文件对象用来保存图片,默认保存当前工程根目录  
    26         File imageFile = new File("BeautyGirl.jpg");  
    27         //创建输出流  
    28         FileOutputStream outStream = new FileOutputStream(imageFile);  
    29         //写入数据  
    30         outStream.write(data);  
    31         //关闭输出流  
    32         outStream.close();  
    33     }  
    34     public static byte[] readInputStream(InputStream inStream) throws Exception{  
    35         ByteArrayOutputStream outStream = new ByteArrayOutputStream();  
    36         //创建一个Buffer字符串  
    37         byte[] buffer = new byte[1024];  
    38         //每次读取的字符串长度,如果为-1,代表全部读取完毕  
    39         int len = 0;  
    40         //使用一个输入流从buffer里把数据读取出来  
    41         while( (len=inStream.read(buffer)) != -1 ){  
    42             //用输出流往buffer里写入数据,中间参数代表从哪个位置开始读,len代表读取的长度  
    43             outStream.write(buffer, 0, len);  
    44         }  
    45         //关闭输入流  
    46         inStream.close();  
    47         //把outStream里的数据写入内存  
    48         return outStream.toByteArray();  
    49     }  
    50 }  
  • 相关阅读:
    675 对象的引用-浅拷贝-深拷贝
    674 vue3侦听器watch
    673 vue计算属性:缓存,setter和getter
    明明有了promise,为啥还需要async await?
    Js常用数组方法汇总
    一些非常有用的Js单行代码
    Js获取验证码倒计时
    前端截取字符串:JS截取字符串之substring、substr和slice详解
    javascript全局变量与局部变量
    JS实现快速排序算法
  • 原文地址:https://www.cnblogs.com/faunjoe88/p/7478010.html
Copyright © 2011-2022 走看看