首页 > 代码库 > Android · 获取网络图片

Android · 获取网络图片

import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileOutputStream;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.URL;import org.junit.Test;public class InternetTest{    @Test    public void getImage() throws Exception    {        // fail("Not yet implemented");        // 首先我们要得到请求的路径,路径为我们想要得到的资源        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 =http://www.mamicode.com/ readInStream(inputStream);            // 创建保存文件            File file = new File("xiaocai.jpg");            // 创建一个文件输出流            FileOutputStream outputStream = new FileOutputStream(file);            // 将我们所得的二进制数据全部写入我们建好的文件中            outputStream.write(data);            // 关闭输出流            outputStream.close();        }    }    // 读取流文件的内容    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();    }}

 

Android · 获取网络图片