mysql数据库备份--java代码

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;


//数据库备份
public class MySQLDump {

    public static boolean sqlDump(String cmd,String filePath){
        boolean falg = false;
        try {
            Runtime run = Runtime.getRuntime();
            //cmd 命令:"C:/Program Files/MySQL/MySQL Server 5.1/bin/mysqldump -uroot -proot  email"
            Process p = run.exec(cmd);
            InputStream is =     p.getInputStream();// 控制台的输出信息作为输入流 
            InputStreamReader isr = new InputStreamReader(is,"UTF-8");//设置输入流编码格式
            BufferedReader br = new BufferedReader(isr);
            //将控制台输入信息写入到文件输出流中
            FileOutputStream fos = new FileOutputStream(filePath);
            BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(fos,"UTF-8"));
            String temp = null;
            while( (temp = br.readLine()) !=null){
                bw.write(temp);
                bw.newLine();
            }
            bw.flush();
            bw.close();
            br.close();
            falg = true;
            System.out.println("/* Dump  SQL File "+filePath+" OK! */");  
        } catch (IOException e) {
            throw new RuntimeException("请将mysql命令添加到path中!",e);
        }
        return falg;
    }
   
    //恢复数据库
    /** 
     * 导入 
     * 
     */ 
    public static void sqlLoad(String cmd,String sqlPath) {  
        try {  
            Runtime rt = Runtime.getRuntime();  
 
            // 调用 mysql 的 cmd: C:/Program Files/MySQL/MySQL Server 5.1/bin/mysql.exe -uroot -proot email 
            Process child = rt.exec(cmd);  
            OutputStream out = child.getOutputStream();//控制台的输入信息作为输出流  
            //输入流
            BufferedReader br = new BufferedReader(new InputStreamReader(  
                    new FileInputStream(sqlPath), "utf8"));  
            //输出流
            OutputStreamWriter writer = new OutputStreamWriter(out, "utf8");  
            String inStr;  
            while ((inStr = br.readLine()) != null) {  
                writer.write(inStr); 
                writer.write("\r\n");
            }  
            writer.flush();  
            // 别忘记关闭输入输出流  
            out.close();  
            br.close();  
            writer.close();  
            System.out.println("/* Load  SQL File "+sqlPath+" OK! */");  
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
 
    } 
    public static void main(String[] args) {
        sqlDump("C:/Program Files/MySQL/MySQL Server 5.1/bin/mysqldump -uroot -proot  email","c:/email.sql");
        sqlLoad("C:/Program Files/MySQL/MySQL Server 5.1/bin/mysql.exe -uroot -proot email","c:/email.sql");
    }

}

参考网址:http://blog.csdn.net/afgasdg/article/details/6957678

猜你喜欢

转载自hzywy.iteye.com/blog/1490049