通过Java HTTP连接将网络图片下载到本地

package imageView;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
/**
 * @说明 从网络获取图片到本地

 * @version 1.0
 * @since
 */
public class GetImage {
 /**
  * 测试
  * @param args
  */
 public static void main(String[] args) {
  String url = "http://www.baidu.com/img/baidu_sylogo1.gif";
  byte[] btImg = getImageFromNetByUrl(url);
  if(null != btImg && btImg.length > 0){
   System.out.println("读取到:" + btImg.length + " 字节");
   String fileName = "百度.gif";
   writeImageToDisk(btImg, fileName);
  }else{
   System.out.println("没有从该连接获得内容");
  }
 }
 /**
  * 将图片写入到磁盘
  * @param img 图片数据流
  * @param fileName 文件保存时的名称
  */
 public static void writeImageToDisk(byte[] img, String fileName){
  try {
   File file = new File("C:\\" + fileName);
   FileOutputStream fops = new FileOutputStream(file);
   fops.write(img);
   fops.flush();
   fops.close();
   System.out.println("图片已经写入到C盘");
  } catch (Exception e) {
   e.printStackTrace();
  }
 }
 /**
  * 根据地址获得数据的字节流
  * @param strUrl 网络连接地址
  * @return
  */
 public static byte[] getImageFromNetByUrl(String strUrl){
  try {
   URL url = new URL(strUrl);
   HttpURLConnection conn = (HttpURLConnection)url.openConnection();
   conn.setRequestMethod("GET");
   conn.setConnectTimeout(5 * 1000);
   InputStream inStream = conn.getInputStream();//通过输入流获取图片数据
   byte[] btImg = readInputStream(inStream);//得到图片的二进制数据
   return btImg;
  } catch (Exception e) {
   e.printStackTrace();
  }
  return null;
 }
 /**
  * 从输入流中获取数据
  * @param inStream 输入流
  * @return
  * @throws Exception
  */
 public static byte[] readInputStream(InputStream inStream) throws Exception{
  ByteArrayOutputStream outStream = new ByteArrayOutputStream();
  byte[] buffer = new byte[1024];
  int len = 0;
  while( (len=inStream.read(buffer)) != -1 ){
   outStream.write(buffer, 0, len);
  }
  inStream.close();
  return outStream.toByteArray();
 }
}

 

 

http://cuisuqiang.iteye.com/blog/1726173

时间: 2024-08-01 13:34:03

通过Java HTTP连接将网络图片下载到本地的相关文章

多谢多谢-用java编写一个从服务器下载与本地名匹配的文件

问题描述 用java编写一个从服务器下载与本地名匹配的文件 10C 就是一个程序版本与服务器特定路径下所有程序版本匹配,比较高的下载,本地最高关闭程序,现在的卡点就是无法连接FTP,全部是自己看视频学习,从网上查的代码会报错,知识欠缺无法处理登陆问题,还请各位大神不嫌弃悬赏低的帮帮忙,谁都是从菜鸟过来的,我悬赏很少,还要留着不会的再发,希望各位大神帮帮忙,不介意的话留下联系方式方便以后不会的可以帮忙解答,小弟在此感激不尽.谢谢! 解决方案 http://blog.csdn.net/cuiran/

sftp下载zip文件-java从sftp上下载到本地磁盘的zip文件读取不了,请大家帮忙解答下,谢谢!

问题描述 java从sftp上下载到本地磁盘的zip文件读取不了,请大家帮忙解答下,谢谢! 从sftp上下载到本地的zip文件是没问题的,用压缩工具打开能查看里面的文件,为什么就是读取不了呢? java从sftp下载zip文件到本地磁盘代码: import java.io.InputStream; import java.util.Date; import com.ibm.gbs.ai.portal.framework.util.DateUtils; import com.jcraft.jsch

Java 实现连接sql server 2000(JDBC数据库访问例子)

server|访问|数据|数据库 刘金龙 04041222 ljlsunny@vip.sina.com   第一种:通过ODBC连接数据库 JAVA语言的跨平台的工作能力(Write Once ,Run Anywhere).优秀的图像处理能力(我相信现在没有那种语言可以超过JAVA在网络上的图形处理能力).网络通信功能.通过JDBC数据库访问技术等等,让我们谁都不可否认JAVA语言是SUN公司对于计算机界的一个巨大的贡献.笔者可以描述这样一个场景:有一天你上网完全可以不用IE 或者NETSCAP

java实现连接mysql数据库单元测试查询数据的实例代码_java

1.按照javaweb项目的要求逐步建立搭建起机构,具体的类包有:model .db.dao.test; 具体的架构详见下图: 2.根据搭建的项目架构新建数据库test和数据库表t_userinfo并且添加对应的测试数据; (这里我使用的是绿色版的数据库,具体的下载地址:http://pan.baidu.com/s/1mg88YAc) 具体的建立数据库操作详见下图: 开发实例"> 3.编写包中的各种类代码,具体参考代码如下: UserInfo.java /** * FileName: Us

JAVA技术实现上传下载文件到FTP服务器(完整)_java

具体详细介绍请看下文: 在使用文件进行交互数据的应用来说,使用FTP服务器是一个很好的选择.本文使用Apache Jakarta Commons Net(commons-net-3.3.jar) 基于FileZilla Server服务器实现FTP服务器上文件的上传/下载/删除等操作. 关于FileZilla Server服务器的详细搭建配置过程,详情请见 FileZilla Server安装配置教程 .之前有朋友说,上传大文件(几百M以上的文件)到FTP服务器时会重现无法重命名的问题,但本人亲

(14)[Xamarin.Android] 异步的网络图片下载

原文 [Xamarin.Android] 异步的网络图片下载 在设计要从网络上接大量数据并且显示在Android Listview中,而这些资料是利用Json格式传送并且数据中包含这图片档案. 那在Xamarin中如何实作这种异步下载的观念? *在阅读这一篇前,建议可以先看一下当麻哥的如何客制化的ListView之章 http://www.dotblogs.com.tw/junegoat/archive/2013/07/17/c-sharp-xamarin-android-customize-l

mongodb3.0分片及java代码连接操作测试(开启用户验证)

最近抽时间搭建了一下mongodb简单的分片,整个过程还算是蛮顺利,只不过在用户验证这一块遇到了一些问题,好在最后终于搞定. 一.服务器搭建过程: 1.安装四个mongodb:一个作为config.一个作为mongos.另外两个作为主要数据存储的服务器(机器ip192.168.0.201),如图: 分别对应图中被红框框起来的mongoconf.mongos.mongo1.mongo2(解压安装,安装过程省略). 2.分别建立data.conf.logs文件夹,并在logs文件夹下建立mongod

java字符串连接String、StringBuffer和StringBuilder

Java字符串连接再开发中随时用的,方法很多: 先看下下边的代码: package com.meiyabaike.classx; public class ClassxMathCalculate { public static void main(String[] args) { int i1 = 10; int i2 = 20; System.out.println("resultx1 :"+i1+i2); //Error: the operator - is undefined f

vba-请教如何用Excel VBA写宏,ODBA的方式连接Oracle,下载Oracle里面的数据

问题描述 请教如何用Excel VBA写宏,ODBA的方式连接Oracle,下载Oracle里面的数据 RT,以下是原先用AS400的时候取数据用的代码,换成Oracle之后在链接信息里面需要怎么设置呢? With ActiveSheet.QueryTables.Add(Connection:=Array(Array( _ "ODBC;DRIVER={Client Access ODBC Driver (32-bit)};SYSTEM=" & HostName & &q