Java还原MySQL数据库时出现管道已结束
编码问题和备份出来后文件的乱码问题已经检查过了,还是出现管道已结束的情况。望各位大神可以给点建议或者解决问题的方法
public static void recover(String filepath,String ip,String database, String userName,String password) throws IOException{
File file = new File(filepath);
Runtime rt = Runtime.getRuntime();
try {
Process process = rt.exec("cmd /cmysql -u "+ userName +" -p"+ password +" --default-character-set=utf8 "+ database);
System.out.println("cmd /cmysql -u "+ userName +" -p"+ password +" --default-character-set=utf8 "+ database);
OutputStream os = process.getOutputStream();
String str = null;
String outstr = null;
StringBuffer sb = new StringBuffer();
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
while((str = br.readLine()) != null){
sb.append(str+"\r\n");
}
outstr = sb.toString();
System.out.println(outstr);
OutputStreamWriter osw = new OutputStreamWriter(os,"utf-8");
osw.write(outstr);
osw.flush();
os.close();
br.close();
osw.close();
System.out.println("还原完成");
}catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
java.io.IOException: 管道已结束。
at java.io.FileOutputStream.writeBytes(Native Method)
at java.io.FileOutputStream.write(Unknown Source)
at java.io.BufferedOutputStream.flushBuffer(Unknown Source)
at java.io.BufferedOutputStream.flush(Unknown Source)
at sun.nio.cs.StreamEncoder.implFlush(Unknown Source)
at sun.nio.cs.StreamEncoder.flush(Unknown Source)
at java.io.OutputStreamWriter.flush(Unknown Source)
at demo.data.ShuJuKu.recover(ShuJuKu.java:92)
at demo.data.ShuJuKu.main(ShuJuKu.java:30)