数据库备份
private boolean exportDatabaseTool( String savePath, String fileName) throws InterruptedException {
File saveFile = new File(savePath);
if (!saveFile.exists()) {
saveFile.mkdirs();
}
if(!savePath.endsWith(File.separator)){
savePath = savePath + File.separator;
}
PrintWriter printWriter = null;
BufferedReader bufferedReader = null;
try {
printWriter = new PrintWriter(new OutputStreamWriter(new FileOutputStream(savePath + fileName), "utf8"));
Process process = Runtime.getRuntime().exec(" mysqldump -h127.0.0.1 -uroot -p123456 --set-charset=UTF8 order_system");
InputStreamReader inputStreamReader = new InputStreamReader(process.getInputStream(), "utf8");
bufferedReader = new BufferedReader(inputStreamReader);
String line;
while((line = bufferedReader.readLine())!= null){
printWriter.println(line);
}
printWriter.flush();
if(process.waitFor() == 0){
return true;
}
}catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (bufferedReader != null) {
bufferedReader.close();
}
if (printWriter != null) {
printWriter.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return false;
}
数据库备份恢复
String command = "mysql -hlocalhost -uroot -p123456 --default-character-set=utf8 order_system";
boolean isSuccess = recover(command, path);
private boolean recover(String command, String savePath) {
boolean flag;
Runtime r = Runtime.getRuntime();
BufferedReader br = null;
BufferedWriter bw = null;
try {
Process p = r.exec(command);
OutputStream os = p.getOutputStream();
FileInputStream fis = new FileInputStream(savePath);
InputStreamReader isr = new InputStreamReader(fis, "utf-8");
br = new BufferedReader(isr);
String s;
StringBuffer sb = new StringBuffer("");
while ((s = br.readLine()) != null) {
sb.append(s + System.lineSeparator());
}
s = sb.toString();
OutputStreamWriter osw = new OutputStreamWriter(os, "utf-8");
bw = new BufferedWriter(osw);
bw.write(s);
bw.flush();
flag = true;
} catch (IOException e) {
flag = false;
e.printStackTrace();
} finally {
try {
if (null != bw) {
bw.close();
}
} catch (IOException e) {
e.printStackTrace();
}
try {
if (null != br) {
br.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return flag;
}
}