您的位置:首页 > 理论基础 > 计算机网络

android下载网络图片

2014-04-14 15:50 351 查看
[java]
view plaincopyprint?





package com.home;  
  
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 DownloadImage {  
    public DownloadImage() {  
        try {  
            getImage();  
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
    }  
  
    public static void main(String[] args) {  
        new DownloadImage();  
    }  
  
    /** 
     * 读取网络图片 
     *  
     * @throws Exception 
     */  
    public void getImage() throws Exception {  
        // 图片url路劲  
        String urlpath = "http://pica.nipic.com/2008-05-23/200852381811521_2.jpg";  
        // 建立URL对象,抛出异常  
        URL url = new URL(urlpath);  
        // 得到HttpURLConnection对象  
        HttpURLConnection conn = (HttpURLConnection) url.openConnection();  
        // 声明请求方式  
        conn.setRequestMethod("GET");  
        // 设置连接超时
4000
  
        conn.setConnectTimeout(6 * 1000);  
        // 连接成功  
        if (conn.getResponseCode() == 200) {  
            // 得到服务器传回来的数据,相对我们来说输入流  
            InputStream inputStream = conn.getInputStream();  
            // 得到数据  
            byte[] data = readInStream(inputStream);  
            // 创建保存文件  
            File file = new File("C:/image.jpg");  
            // 创建一个文件输出流  
            FileOutputStream outputStream = new FileOutputStream(file);  
            // 将我们所得的二进制数据全部写入我们建好的文件中  
            outputStream.write(data);  
            // 关闭输出流  
            outputStream.close();  
        }  
  
    }  
  
    /** 
     * 读取流文件的内容 
     *  
     * @param inputStream 
     * @return 
     * @throws Exception 
     */  
    public byte[] readInStream(InputStream inputStream) throws Exception {  
        ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();  
        // 声明缓冲区  
        byte[] buffer = new byte[1024];  
        // 定义读取默认长度  
        int length = -1;  
        while ((length = inputStream.read(buffer)) != -1) {  
            // 把缓冲区中输出到内存中  
            byteArrayOutputStream.write(buffer, 0, length);  
        }  
        // 关闭输出流  
        byteArrayOutputStream.close();  
        // 关闭输入流  
        inputStream.close();  
        // 返回这个输出流的字节数组  
        return byteArrayOutputStream.toByteArray();  
    }  
}  

package com.home;

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 DownloadImage {
public DownloadImage() {
try {
getImage();
} catch (Exception e) {
e.printStackTrace();
}
}

public static void main(String[] args) {
new DownloadImage();
}

/**
* 读取网络图片
*
* @throws Exception
*/
public void getImage() throws Exception {
// 图片url路劲
String urlpath = "http://pica.nipic.com/2008-05-23/200852381811521_2.jpg";
// 建立URL对象,抛出异常
URL url = new URL(urlpath);
// 得到HttpURLConnection对象
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
// 声明请求方式
conn.setRequestMethod("GET");
// 设置连接超时
conn.setConnectTimeout(6 * 1000);
// 连接成功
if (conn.getResponseCode() == 200) {
// 得到服务器传回来的数据,相对我们来说输入流
InputStream inputStream = conn.getInputStream();
// 得到数据
byte[] data = readInStream(inputStream);
// 创建保存文件
File file = new File("C:/image.jpg");
// 创建一个文件输出流
FileOutputStream outputStream = new FileOutputStream(file);
// 将我们所得的二进制数据全部写入我们建好的文件中
outputStream.write(data);
// 关闭输出流
outputStream.close();
}

}

/**
* 读取流文件的内容
*
* @param inputStream
* @return
* @throws Exception
*/
public byte[] readInStream(InputStream inputStream) throws Exception {
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
// 声明缓冲区
byte[] buffer = new byte[1024];
// 定义读取默认长度
int length = -1;
while ((length = inputStream.read(buffer)) != -1) {
// 把缓冲区中输出到内存中
byteArrayOutputStream.write(buffer, 0, length);
}
// 关闭输出流
byteArrayOutputStream.close();
// 关闭输入流
inputStream.close();
// 返回这个输出流的字节数组
return byteArrayOutputStream.toByteArray();
}
}


 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: