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两
版权声明:本文博客原创文章。博客,未经同意,不得转载。