java怎么复制别人的数据库_Java从数据库读取信息执行文件拷贝

Java从数据库读取信息执行文件拷贝,简单实用。

package read_db_copy_files;

import java.io.BufferedInputStream;

import java.io.BufferedOutputStream;

import java.io.BufferedReader;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStreamReader;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Connection;

import java.sql.Statement;

import java.util.ArrayList;

import java.util.List;

public class MysqlDemo {

public static void main(String[] args) throws Exception {

ArrayList bd_list = readF1("bd.log");

Connection conn = null;

String sql;

String url = "jdbc:mysql://192.168.6.93:3306/resume_parse?"

+ "user=miaohr&password=123456&useUnicode=true&characterEncoding=UTF8";

// 目标文件夹

String dest_dir = "./dest_dir/";

// 创建目标文件夹

(new File(dest_dir)).mkdirs();

try {

Class.forName("com.mysql.jdbc.Driver");// 动态加载mysql驱动

System.out.println("成功加载MySQL驱动程序");

// 一个Connection代表一个数据库连接

conn = DriverManager.getConnection(url);

// Statement里面带有很多方法,比如executeUpdate可以实现插入,更新和删除等

Statement stmt = conn.createStatement();

System.out.println("filepath\tip");

for(String bd_string : bd_list){

sql = "SELECT filepath,ip,filename FROM `middleware_parse_count` WHERE filename='"+bd_string+"'";

ResultSet rs = stmt.executeQuery(sql);// executeQuery会返回结果的集合,否则返回空值

while (rs.next()) {

//string = "/mnt/smbfs94/resume_parse_manager/Files_slave_model_bak/fen/2015-05-22//13bceea1-aeb8-48af-9079-f10b1a886a80.doc";

//System.out.println(rs.getString(1) + "\t" + rs.getString(2));// 入如果返回的是int类型可以用getInt()

String newpath = rs.getString(1);

String[] strarray=rs.getString(2).split("\\.");

String destpath = dest_dir+rs.getString(3);

newpath = newpath.replaceFirst("/opt/", "/mnt/smbfs"+strarray[3]+"/");

System.out.println(newpath);

copyFile(new File(newpath),new File(destpath));

}

}

} catch (SQLException e) {

System.out.println("MySQL操作错误");

e.printStackTrace();

} catch (Exception e) {

e.printStackTrace();

} finally {

conn.close();

}

}

public static ArrayList readF1(String filePath) throws IOException {

BufferedReader br = new BufferedReader(new InputStreamReader(

new FileInputStream(filePath)));

ArrayList list1 = new ArrayList();

for (String line = br.readLine(); line != null; line = br.readLine()) {

System.out.println(line);

list1.add(line);

}

br.close();

return list1;

}

// 复制文件

public static void copyFile(File sourceFile, File targetFile) throws IOException {

BufferedInputStream inBuff = null;

BufferedOutputStream outBuff = null;

try {

// 新建文件输入流并对它进行缓冲

inBuff = new BufferedInputStream(new FileInputStream(sourceFile));

// 新建文件输出流并对它进行缓冲

outBuff = new BufferedOutputStream(new FileOutputStream(targetFile));

// 缓冲数组

byte[] b = new byte[1024 * 5];

int len;

while ((len = inBuff.read(b)) != -1) {

outBuff.write(b, 0, len);

}

// 刷新此缓冲的输出流

outBuff.flush();

} finally {

// 关闭流

if (inBuff != null)

inBuff.close();

if (outBuff != null)

outBuff.close();

}

}

}

0b1331709591d260c1c78e86d0c51c18.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值