1、从数据库读取文件
JDBC.java
package download;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
public class JDBC {
static List list=new ArrayList();
Connection conn=null;
Statement st = null;
ResultSet rs = null;
String str="下载链接前缀";
public void findAll(){
try{
//加载MySql的驱动类
Class.forName("com.mysql.jdbc.Driver") ;
conn=DriverManager.getConnection("jdbc:mysql://服务器:端口/数据库","root","998877aabb");
st=conn.createStatement();
rs=st.executeQuery("select DISTINCT design_uri from photo");
while(rs.next()){
list.add(str+rs.getObject(1));
System.out.println(rs.getString(1));
}
System.out.println("------------------------------------");
}catch(ClassNotFoundException e){
System.out.println("找不到驱动程序类 ,加载驱动失败!");
e.printStackTrace() ;
} catch(SQLException e){
e.printStackTrace();
}
}
public List returnList(){
return list;
}
public static void main(String[] args) {
JDBC jdbc=new JDBC();
jdbc.findAll();
System.out.println(list);
System.out.println(list.size());
}
}
2、读取文件链接并下载
DownLoad.java
package download;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
public class DownLoad {
public void downLoad(String Url, File fileName){
//此方法只能用HTTP协议
//保存文件到本地
//Url是文件下载地址,fileName 为一个全名(路径+文件名)文件
URL url;
DataOutputStream out = null;
DataInputStream in = null;
try {
url = new URL(Url);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
in = new DataInputStream(connection.getInputStream());
out = new DataOutputStream(new FileOutputStream(fileName));
byte[] buffer = new byte[1024*1024*10];
int count = 0;
while ((count = in.read(buffer)) > 0) {
out.write(buffer, 0, count);
}
}catch (Exception e) {
e.printStackTrace();
}finally{
try {
if(out != null){
out.close();
}
if(in != null){
in.close();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public static void main(String[] args) {
DownLoad dl=new DownLoad();
JDBC jdbc=new JDBC();
List list=new ArrayList();
jdbc.findAll();
list=jdbc.returnList();
int total=0;
File f;
File file = new File("d:/images");
//判断文件夹是否存在,如果不存在则创建文件夹
if (!file.exists()) {
file.mkdir();
}
for(int i=0;i<list.size();i++){
int index=0;
System.out.println((String)list.get(i));
dl.downLoad((String)list.get(i), f=new File("d:/images/图片"+i));
//检测文件是否下载成功,否则重新下载,三次下载失败则放弃
while(!f.exists()){
dl.downLoad((String)list.get(i), f=new File("d:/images/图片"+i));
index++;
if(index==3){
System.out.println("下载失败!");
total++;
break;
}
}
if(f.exists()){
System.out.println("下载成功");
}
}
System.out.println("下载完成!");
System.out.println("下载失败"+total+"张");
}
}
周末任务
1、完成文件下载任务
2、继续学习Spring