1. import java.io.File;
  2. import java.io.FileOutputStream;
  3. import java.io.IOException;
  4. import java.io.InputStream;
  5. import java.net.URL;
  6.  
  7. import org.apache.commons.io.FileUtils;
  8. import org.apache.commons.io.IOUtils;
  9.  
  10. public class ImgDownload {
  11.  
  12. public static void main(String[] args) {
  13. downloadHttpUrl("https://www.baidu.com/img/bd_logo1.png", "D:/test/", "test.png");
  14. }
  15.  
  16. public static String downloadHttpUrl(String url, String dir, String fileName) {
  17. try {
  18. URL httpurl = new URL(url);
  19. File f = new File(dir + fileName);
  20. FileUtils.copyURLToFile(httpurl, f);
  21. } catch (Exception e) {
  22. e.printStackTrace();
  23. return null;
  24. }
  25. return dir + fileName;
  26. }
  27.  
  28. public static FileOutputStream openOutputStream(File file) throws IOException {
  29. if (file.exists()) {
  30. if (file.isDirectory()) {
  31. throw new IOException("File '" + file + "' exists but is a directory");
  32. }
  33. if (file.canWrite() == false) {
  34. throw new IOException("File '" + file + "' cannot be written to");
  35. }
  36. } else {
  37. File parent = file.getParentFile();
  38. if (parent != null && parent.exists() == false) {
  39. if (parent.mkdirs() == false) {
  40. throw new IOException("File '" + file + "' could not be created");
  41. }
  42. }
  43. }
  44. return new FileOutputStream(file);
  45. }
  46.  
  47. public static void copyURLToFile(URL source, File destination) throws IOException {
  48. InputStream input = source.openStream();
  49. try {
  50. FileOutputStream output = openOutputStream(destination);
  51. try {
  52. IOUtils.copy(input, output);
  53. } finally {
  54. IOUtils.closeQuietly(output);
  55. }
  56. } finally {
  57. IOUtils.closeQuietly(input);
  58. }
  59. }
  60.  
  61. }

java IOUtils下载图片的更多相关文章

  1. java假设模拟请求重新启动路由器(网络爬虫经常使用),还有java怎样下载图片

    我们假设在公司或家里使用网络爬虫去抓取自己索要的一些数据的时候,经常对方的站点有defence机制,会给你的http请求返回500错误,仅仅要是同样IP就请求不到数据,这时候我们仅仅能去重新启动路由器 ...

  2. 关于Java/Kotlin下载图片,图片打开不能显示问题探究

    图片下载其实是个很简单的功能,通过IO流从在线地址获取流,之后将流输出到文件即可完成下载功能,但是,最近我发现某个网站中的图片下载成功,但是打开却是无法打开,这让我迷惑,百度上根本就没有人说清楚 今天 ...

  3. 用java页面下载图片

    try { //根据String形式创建一个URL对象 String filePath = materialProductWorks.getDownloadImageUrl(); URL url = ...

  4. java远程下载图片

    从别的网站复制文章的时候,要把图片下载到我们网站,再把图片地址换成我们网站的地址 <img id="mbkenHUwhWeOj9U8K6c8LlAXaes3oXit-M4SnmRvB4 ...

  5. java压缩下载图片并以zip流的形式下载到客户端

    /** * * @param page * @param rows * @param works * @return * @author ffwwzz 下载zip * @throws IOExcept ...

  6. Java HttpURLConnection 下载图片 图片全是“加密图片”文字,怎么解决?

    package com.qzf.util; import java.io.FileOutputStream;import java.io.IOException;import java.io.Inpu ...

  7. 记录java ftp下载图片只有96KB的问题

    public InputStream downloadFile(String path) { if(StringUtils.isBlank(path)) { return null; } connne ...

  8. Java部分总结图片版(已经加上原图链接下载!!!)

    Java基础知识图片版(原图下载链接)

  9. Java学习笔记——File类之文件管理和读写操作、下载图片

    Java学习笔记——File类之文件管理和读写操作.下载图片 File类的总结: 1.文件和文件夹的创建 2.文件的读取 3.文件的写入 4.文件的复制(字符流.字节流.处理流) 5.以图片地址下载图 ...

随机推荐

  1. golang连接orcale

    使用glang有一段时间了,最开始其实并不太喜欢他的语法,但是后来熟悉之后发现用起来还挺爽的.之前数据库一直使用mysql,连接起来没有什么问题,github上有很多完善的驱动,所以以为连接其他数据库 ...

  2. Java技术——Java泛型详解

    .为什么需要泛型 转载请注明出处:http://blog.csdn.net/seu_calvin/article/details/52230032 泛型在Java中有很重要的地位,网上很多文章罗列各种 ...

  3. SPOJ QTREE6 Query on a tree VI 树链剖分

    题意: 给出一棵含有\(n(1 \leq n \leq 10^5)\)个节点的树,每个顶点只有两种颜色:黑色和白色. 一开始所有的点都是黑色,下面有两种共\(m(1 \leq n \leq 10^5) ...

  4. 在python中对元祖进行排序

    在python里你可以对一个元组进行排序.例子是最好的说明: >>> items = [(1, 'B'), (1, 'A'), (2, 'A'), (0, 'B'), (0, 'a' ...

  5. spring boot + activeMq 邮件服务

    引入依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>s ...

  6. webdriver高级应用-使用JavaScript操作页面元素

    Webdriver搞不定的,需要用js,无需引入有关js的包就可用 在WebDriver脚本代码中执行JavaScript代码,来实现对页面元素的操作.此方法主要用于解决在某些情况下,页面元素的.cl ...

  7. PHP 开启或关闭错误提示

    如果不具备修改 php.ini 的权限,可以如下: // 只需在php文件中加入这两句即可开启PHP错误提示 ini_set("display_errors", "On& ...

  8. C++ POST方式访问网页

    bool PostContent(CString strUrl, const CString &strPara, CString &strContent, CString &s ...

  9. 2016-2017 ACM Central Region of Russia Quarterfinal Programming Contest BHanoi tower

    B Hanoi tower It has become a good tradition to solve the “Hanoi tower” puzzle at programming contes ...

  10. failed to allocate for range 0: no IP addresses available in range set: 172.20.xx.1-172.20.xx.254

    今天遇到一个机器上的Pod 在创建以后一直处于Init 0/1的状态,进到这个节点查看其kubelet的状态,发现果然有问题 systemctl status kubelet .go:] Contai ...