您的位置:首页 > 数据库

从数据库读取文件并下载

2015-10-18 23:15 375 查看

1、从数据库读取文件

JDBC.java

[code]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

[code]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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: