Java依据Url下载图片
package com.ronniewang.downloadpicture; import java.io.DataInputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList; import com.mysql.jdbc.Connection;
import com.mysql.jdbc.Statement;
import com.ronniewang.utilities.JdbcUtil; public class DownloadPicture { public static void main(String[] args) {
DownloadPicture downloadPicture = new DownloadPicture();
ArrayList<String> urlList = downloadPicture.readUrlList();
downloadPicture.downloadPicture(urlList);
} /**
* 传入要下载的图片的url列表,将url所相应的图片下载到本地
* @param urlList
*/
private void downloadPicture(ArrayList<String> urlList) {
URL url = null;
int imageNumber = 0; for (String urlString : urlList) {
try {
url = new URL(urlString);
DataInputStream dataInputStream = new DataInputStream(url.openStream());
String imageName = imageNumber + ".jpg";
FileOutputStream fileOutputStream = new FileOutputStream(new File(imageName)); byte[] buffer = new byte[1024];
int length; while ((length = dataInputStream.read(buffer)) > 0) {
fileOutputStream.write(buffer, 0, length);
} dataInputStream.close();
fileOutputStream.close();
imageNumber++;
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
} /**
* 连接mysql数据库。通过查询数据库读取要下载的图片的url列表
* @return
*/
private ArrayList<String> readUrlList() {
ArrayList<String> urlList = new ArrayList<String>();
try {
Connection connection = (Connection) JdbcUtil.getConnection();
Statement statement = (Statement) connection.createStatement();
String sql = "select url from url"; //查询语句换位相应select语句
ResultSet resultSet = statement.executeQuery(sql); while (resultSet.next()) {
String url = resultSet.getString("url");
urlList.add(url);
System.out.println(url);
} JdbcUtil.free(resultSet, statement, connection);
} catch (SQLException e) {
e.printStackTrace();
} return urlList;
} }
JdbcUtil类代码例如以下:
package com.ronniewang.utilities; import java.sql.*;
import javax.sql.*; /**
* 连接mysql数据库的工具类。用来作为DownloadPicture进行数据库连接的辅助类
* @author Administrator
*
*/
public final class JdbcUtil {
//下列配置换成对应内容就可以
private static String url = "jdbc:mysql://localhost:3306/test";
private static String user = "root";
private static String password = "123456"; private JdbcUtil() { } static {
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
throw new ExceptionInInitializerError(e);
}
} public static Connection getConnection() throws SQLException{
return DriverManager.getConnection(url, user, password);
} public static void free(ResultSet rs, Statement st, Connection conn) {
try {
if (rs != null) {
rs.close();
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (st != null) {
st.close();
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
}
测试数据库表字段id和url两
版权声明:本文博客原创文章。博客,未经同意,不得转载。
Java依据Url下载图片的更多相关文章
- JAVA 通过url下载图片保存到本地
//java 通过url下载图片保存到本地 public static void download(String urlString, int i) throws Exception { // 构造U ...
- Java和Android Http连接程序:使用java.net.URL 下载服务器图片到客户端
Java和Android Http连接程序:使用java.net.URL 下载服务器图片到客户端 本博客前面博文中利用org.apache.http包中API进行Android客户端HTTP连接的例子 ...
- 从url下载图片--java与python实现方式比较
从url下载图片--java与python实现方式比较 博客分类: 技术笔记小点滴 javapython图片下载 一.java的实现方式 首先读取图片 //方式一:直接根据url读取图片 priva ...
- java 根据Url下载对应的文件到指定位置,读txt文件获取url
package test; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; im ...
- C++根据图片url下载图片
需要使用到URLDownloadToFile()函数,该函数在头文件<urlmon.h>中声明. URLDownloadToFile()函数的定义如下: HRESULT URLDownlo ...
- 根据url下载图片和页面
需要将&tp=webp&wxfrom=5去掉,既可以在任何地方显示,也可以下载了 http://mmbiz.qpic.cn/mmbiz_jpg/bf8pC39RBhGFOH1ib9Ac ...
- QT通过url下载图片到本地
/* strUrl:下载图片时需要的url strFilePath:下载图片的位置(/home/XXX/YYY.png) */ void ThorPromote::downloadFileFromUr ...
- 根据URL地址获取对应的HTML,根据对应的URL下载图片
核心代码(获取HTML): #region 根据URL地址获取信息GET public static String GetResult(string url) { return GetResult(u ...
- js 根据url 下载图片
downloadIamge(imgsrc, name) {//下载图片地址和图片名 let image = new Image(); // 解决跨域 Canvas 污染问题 image.setAttr ...
随机推荐
- 学习FFmpeg API – 解码视频
本文转载 视频播放过程 首先简单介绍以下视频文件的相关知识.我们平时看到的视频文件有许多格式,比如 avi, mkv, rmvb, mov, mp4等等,这些被称为容器(Container), 不同的 ...
- 【原创】纯OO:从设计到编码写一个FlappyBird (一)
说起来,自学计算机也有2年多的时间了,自己还没有从设计到编码,完完整整的设计一个基于面向对象的软件的经历..囧 于是,就有了这个系列.首先选用的语言是Java,没别的原因,HeadFirst设计模式是 ...
- HYSBZ 2243 染色 (树链拆分)
主题链接~~> 做题情绪:这题思路好想.调试代码调试了好久.第一次写线段树区间合并. 解题思路: 树链剖分 + 线段树区间合并 线段树的端点记录左右区间的颜色.颜色数目.合并的时候就用区间合并的 ...
- Oracle 重建索引脚本
该指数是一个有力的武器,以提高数据库的查询性能. 没有索引,喜欢同样的标签库没有书籍,找书,他们想预订比登天还难.中,尤其是在批量的DML的情形下会产生对应的碎片.以及B树高度会发生对应变化.因此能够 ...
- Android ELF文件格式
最近一直在学习elf相关信息.一个小总结,这里记录,也方便以后查阅. ELF是类Unix类系统,当然也包含Android系统上的可运行文件格式(也包含.so和.o类文件). 能够理解为Android系 ...
- C#设计及其UML(反向工程)
OOP之C#设计及其UML(反向工程) 现在总结一下C#类关键字(virtual.abstract.override.new.sealed)的使用(以C#代码体现),并再次熟悉一下OOP思想,使用 ...
- c++日历v1.0版本
#include<iostream> # include<fstream> #include<time.h> #include<string> #inc ...
- ZOJ 2412 Farm Irrigation(DFS 条件通讯块)
意甲冠军 两个农田管内可直接连接到壳体 他们将能够共享一个水源 有11种农田 管道的位置高于一定 一个农田矩阵 问至少须要多少水源 DFS的连通块问题 两个相邻农田的管道能够直接连接的 ...
- PoolBoy
PoolBoy source code : https://github.com/devinus/poolboy Checkout ready({checkout, Block, Timeout}, ...
- js实现鼠标拖拽div-------Day44
假设去问这样一个问题"你认为鼠标操作简单,还是键盘操作简单",相信会有多数人都会回答鼠标吧,毕竟键盘button那么多,假设手小了或者手法不规范了,太easy出问题了,也对操作的速 ...