从数据库读取文件并下载
2015-10-18 23:15
429 查看
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
相关文章推荐
- mysql权限管理
- Linux下的mongodb服务监视脚本(启动服务)
- MySQL 添加列,修改列,删除列
- sqlite数据库学习
- SQLLite--判断表是否存在,存在则删除,反之创建
- mybatis动态SQL - like
- MySQL图形工具navicat for MySQL安装及破解
- MySQL----基本数据类型
- MySQL-1
- MySQL 有效的建立索引
- ORACLE-FUNCTION-SYS_CONNECT_BY_PATH
- Memcached总结四:用ava程序连接memcached进行操作
- oracle监听和实例的启动顺序
- Mysql安装
- PLSQL导入数据及遇到问题
- mysql分页原理和sqlserver里面序列的用法
- mysql日志管理
- 从关系型数据库到非关系型数据库
- mysql免安装版如何使用
- 手动删除数据库中openstack的实例