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两列

时间: 2024-11-06 12:20:59

Java根据Url下载图片的相关文章

JAVA 通过url下载图片保存到本地

//java 通过url下载图片保存到本地 public static void download(String urlString, int i) throws Exception { // 构造URL URL url = new URL(urlString); // 打开连接 URLConnection con = url.openConnection(); // 输入流 InputStream is = con.getInputStream(); // 1K的数据缓冲 byte[] bs

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 ja

从url下载图片--java与python实现方式比较

从url下载图片--java与python实现方式比较 博客分类: 技术笔记小点滴 javapython图片下载 一.java的实现方式 首先读取图片 Java代码   //方式一:直接根据url读取图片 private static BufferedImage read(String imageUrl) throws IOException { URL url = new URL(imageUrl); BufferedImage image = ImageIO.read(url); retur

android通过url下载图片并实现fragment与activity的图片交互

增加了图片放大缩小功能,一共用到三个类.MainActivity仅作为添加fragment用,其全部代码如: package com.example.ex_1213_mypic; import android.os.Bundle; import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentT

Java获取url地址图片

package com.listings.web.controller; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.FileOutputStream; import java.net.HttpURLConnection; import java.net.URL; import java.util.Date; public class CatchPic { public stati

根据URL下载图片至客户端、服务器实例

1.保存至服务器 根据路径保存至项目所在服务器上. 1 String imgUrl="";//图片地址 2 try { 3 // 构造URL 4 URL url = new URL(imgUrl); 5 // 打开连接 6 URLConnection con = url.openConnection(); 7 // 输入流 8 InputStream is = con.getInputStream(); 9 // 1K的数据缓冲 10 byte[] bs = new byte[1024

java 微信服务器下载图片到自己服务器

/** * @author why * */ public class PicDownload { /** * * 根据文件id下载文件 * * * * @param mediaId * * 媒体id * * @throws Exception */ public static InputStream getInputStream(String accessToken, String mediaId) { InputStream is = null; String url = "http://f

HttpURLConnection 传输数据和下载图片

一.传输字符串数据 在Android中HttpURLConnection传输数据是必不可少的,我们继续在"AsyncTask(异步任务)"案例的基础上添加. 案例: 首先我们做一个jsp的服务端,文件名为test1.jsp. <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><% Stri

Android 使用Jsoup解析html+下载图片

最近想鼓捣一下CSDN客户端,这篇博客主要介绍如何使用Jsoup解析html页面通过标签获取所需内容,并下载指定图片资源. 一.导入Jsoup JAR包 JAR包下载地址:jsoup 1.6.1 注意导入包到项目时,直接将解压后的jar文件全部复制到libs文件目录下即可,否则运行时会报错. 二.下载html页面并解析 代码: package com.example.testcsdn; import java.io.ByteArrayOutputStream; import java.io.IO