package cn.test.net;  

import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
public class ImageRequest {
/**
* @param args
*/
public static void main(String[] args) throws Exception {
//new一个URL对象
URL url = new URL("http://img.hexun.com/2011-06-21/130726386.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();
}
}

转载自:http://blog.csdn.net/sabic/article/details/6564169

最新文章

  1. ACM Steps 2.1.4
  2. Monkey测试的策略和分析
  3. iis7.5应用程序池模板永久性缓存初始化失败解决方法
  4. Oracle 中的replace函数的应用
  5. linux 命令小结
  6. andeoid学习笔记七
  7. css 利用border属性制作箭头 Using Borders to Make Pure CSS Arrows
  8. 国内开源html5游戏引擎全收录
  9. css 动画 transform transition animation
  10. Oracle的闪回技术--闪回错误的DML操作
  11. [trouble] error connecting to master 'repl@192.168.1.107:3306' - retry-time: 60 retries: 86400
  12. linux下允许和禁止root远程登录的方法
  13. restful规范快速记忆
  14. time模块的使用
  15. iOS - 富文本直接设置文字的字体大小和颜色
  16. 常用gui软件使用技巧
  17. File类、文件过滤器、递归、文件及文件夹的操作方法
  18. 适合Eclipse Juno的UML插件
  19. 静态分析第三发 so文件分析(小黄人快跑)
  20. HTML5--details活学活用

热门文章

  1. sqlmap注入检测经验0x01
  2. 【phpcms-v9】phpcms-v9二次开发所必须知道的步骤(转载)
  3. iOS钥匙串
  4. 如何让图片在垂直方向与 div的底部对齐 水平居中
  5. DigitalOcean 建站笔记
  6. JS禁止WEB页面鼠标事件大全
  7. Apache中,同一IP使用多域名对应多个网站的方法
  8. iOS: ARC & MRC下string内存管理策略探究
  9. 下位机多个".c, .h"文件的相互包含及排版
  10. cf#306D. Regular Bridge(图论,构图)