Java从网络读取图片并保存至本地
2024-10-13 22:44:39
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
最新文章
- ACM Steps 2.1.4
- Monkey测试的策略和分析
- iis7.5应用程序池模板永久性缓存初始化失败解决方法
- Oracle 中的replace函数的应用
- linux 命令小结
- andeoid学习笔记七
- css 利用border属性制作箭头 Using Borders to Make Pure CSS Arrows
- 国内开源html5游戏引擎全收录
- css 动画 transform transition animation
- Oracle的闪回技术--闪回错误的DML操作
- [trouble] error connecting to master 'repl@192.168.1.107:3306' - retry-time: 60 retries: 86400
- linux下允许和禁止root远程登录的方法
- restful规范快速记忆
- time模块的使用
- iOS - 富文本直接设置文字的字体大小和颜色
- 常用gui软件使用技巧
- File类、文件过滤器、递归、文件及文件夹的操作方法
- 适合Eclipse Juno的UML插件
- 静态分析第三发 so文件分析(小黄人快跑)
- HTML5--details活学活用
热门文章
- sqlmap注入检测经验0x01
- 【phpcms-v9】phpcms-v9二次开发所必须知道的步骤(转载)
- iOS钥匙串
- 如何让图片在垂直方向与 div的底部对齐 水平居中
- DigitalOcean 建站笔记
- JS禁止WEB页面鼠标事件大全
- Apache中,同一IP使用多域名对应多个网站的方法
- iOS: ARC &; MRC下string内存管理策略探究
- 下位机多个";.c, .h";文件的相互包含及排版
- cf#306D. Regular Bridge(图论,构图)