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 ImageRequest{

/**

* 读取网络图片并保存至服务器硬盘中

* @param imgUrl

* @return 图片保存的服务器路径

*/

public static String getImages(String imgUrl){

String imgPath = "";

try{

//new一个URL对象

URL url = new URL(imgUrl);

//打开链接

HttpURLConnection conn = (HttpURLConnection)url.openConnection();

//设置请求方式为"GET"

conn.setRequestMethod("GET");

//超时响应时间为5秒

conn.setConnectTimeout(5 * 1000);

//通过输入流获取图片数据

InputStream inStream = conn.getInputStream();

//得到图片的二进制数据,以二进制封装得到数据,具有通用性

byte[]data = readInputStream(inStream);

imgPath = ImageRequest.class.getClassLoader().getResource("").getPath();

imgPath = imgPath.split("WEB-INF")[0];

imgPath = imgPath+"images/"+"haha.jpg";

//new一个文件对象用来保存图片,默认保存当前工程根目录

File imageFile = new File(imgPath);

//创建输出流

FileOutputStream outStream = new FileOutputStream(imageFile);

//写入数据

outStream.write(data);

//关闭输出流

outStream.close();

//服务器文件路径

imgPath = imgPath.split("WebRoot")[1];

System.out.println(imgPath);

}catch(Exception e){e.printStackTrace();}

return imgPath;

}

/**

* 读取文件流

* @param inStream

* @return

* @throws Exception

*/

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();

}

public static void main(String[] args) throws Exception {

ImageRequest.getImages("http://image.meilele.com/images/201311/1385338928366387259.jpg");

}

}

java 保存文件在服务器_java文件保存至服务器相关推荐

  1. java 判断ftp文件是否存在_java如何检验ftp服务器中指定文件是否存在

    详细内容 项目工作中,需要检验ftp服务器中指定文件是否存在,在网上查阅了相关资料,可以通过ftpClient类进行实现. 免费学习视频教程分享:java课程 具体实现代码:import org.ap ...

  2. java文件上传_Java文件上传细讲

    什么是文件上传? 文件上传就是把用户的信息保存起来. 为什么需要文件上传? 在用户注册的时候,可能需要用户提交照片.那么这张照片就应该要进行保存. 上传组件(工具) 为什么我们要使用上传工具? 为啥我 ...

  3. java 当前类相对路径_JAVA文件中获取该项目的相对路径方法

    1.基本概念的理解 绝对路径:绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,(URL和物理路径)例如:C:\xyz\test.txt 代表了test.txt文件的绝对路径.http://www ...

  4. java 文件写入 读取_JAVA文件的两种读取方法和三种写入方法

    在使用java对文件进行读写操作时,有多种方法可以使用,但不同的方法有不同的性能. 此文对常用的读写方法进行了整理,以备不时之需. 1.文件的读取 主要介绍两种常用的读取方法.按行读取和按字符块读取. ...

  5. java 调用 swf 文件上传_java文件上传方法

    文件上传方法(一次上传一个文件,多个文件的话,请写循环调用) Upload.uploadFile(theFile, filePath) 说明: theFile:类型是FormFile filePath ...

  6. java文件操作和_JAVA文件操作类和文件夹的操作

    JAVA文件操作类和文件夹的操作 package com.gamvan.tools; import java.io.BufferedReader; import java.io.File; impor ...

  7. java中三种方法_Java文件I/O的三种方法

    Java文件I/O的三种方法 RandomAccessFile是不属于InputStream和OutputStream类系的.实际上,除了实现DataInput和DataOutput接口之外(Data ...

  8. java文件与流_Java文件与流

    文件 文件管理通过java.io包下.file类 作用: 1.文件属性 2.文件检查 3.文件删除 4.不包含对其文件内容的处理 File类的构造 语法: File f =new File(Strin ...

  9. java文件流读取_java 文件及流读取

    在Java语言的IO编程中,读取文件是分两个步骤:1.将文件中的数据转换为流,2.读取流内部的数据.其中第一个步骤由系统完成,只需要创建对应的流对象即可,对象创建完成以后步骤1就完成了,第二个步骤使用 ...

最新文章

  1. 【转载】SAP Oracle ERP产品的比较
  2. redhat 中配置静态 IP
  3. Linux性能调优、Linux集群与存储等
  4. Spring boot的Maven配置依赖
  5. 不能包含全角 正则_java常用正则表达式
  6. 换行标签br(HTML)
  7. 【渝粤教育】电大中专电子线路作业 题库
  8. Zabbix安装界面显示PHP time zone 为“红色”的解决办法
  9. 数学建模_混合赌博模型
  10. win10系统用cadance画封装软件卡死问题
  11. Android10相机能够到获取经纬度,但是不能在相机中显示
  12. OpenKG开源系列 | 面向知识的推理问答编程语言KoPL(清华大学)
  13. Win10 底部应用图标显示不正常(空白)
  14. 货币银行学第一次作业
  15. css rgb转16进制,jquery获取元素颜色css('color')的值返回RGB。如何转十六进制
  16. win10系统C盘突然红了爆满占了170G找了几天怎么也找不到哪个文件占用这么多磁盘空间
  17. android 画图便宜,10个最好用的绘画App,赶紧mark
  18. angular中的 :host 、:host-context、::ng-deep
  19. 远程控制电脑会不会泄露隐私
  20. 热力学多元函数微分基础

热门文章

  1. mysql 统计当天,本周,本月,上一月的数据
  2. MyBatis JdbcType介绍
  3. linux中安装jdk安装(rpm安装)
  4. linux怎么查看sklearn版本,Sklearn——Sklearn的介绍与安装
  5. java开发属于itsm吗_【行业】IT服务管理(ITSM):IT行业变革的思考(1)
  6. 使用PPMI改进共现矩阵
  7. mysql 索引空间大小_查看数据库表中容量大小,表有多少记录,占多少空间以及索引的大小,以及未使用空间...
  8. java 匿名类型_Java之匿名类讲解
  9. window访问不到linux的activemq_springboot整合开源项目测试拦截接口访问的频率
  10. centos7 修改为任意网卡名_VirtualBox虚拟机双网卡配置实现与本机互通并上网