Java来恢复MySql数据,但是报错了什么管道已结束,找了好久都没找到原因。。哎。
package com.hancai.base.admin.action;
import java.io.BufferedReader;
import java.io.File;
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 Test {
public static void main(String[] args) throws IOException{
recover("d:\\fjsdljfls.sql");
}
public static void backup(String path) throws IOException{
Runtime runtime = Runtime.getRuntime();
Process process = runtime.exec("mysqldump -u root -p123456 family");
InputStream inputStream = process.getInputStream();
InputStreamReader reader = new InputStreamReader(inputStream);
BufferedReader br = new BufferedReader(reader);
String s = null;
StringBuffer sb = new StringBuffer();
while((s = br.readLine()) != null){
sb.append(s+"\r\n");
}
s = sb.toString();
System.out.println(s);
File file = new File(path);
file.getParentFile().mkdirs();
FileOutputStream fileOutputStream = new FileOutputStream(file);
fileOutputStream.write(s.getBytes());
fileOutputStream.close();
br.close();
reader.close();
inputStream.close();
}
public static void recover(String path) throws IOException{
Runtime runtime = Runtime.getRuntime();
Process process = runtime.exec("mysql -u root -p123456 family");
OutputStream outputStream = process.getOutputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(path)));
String str = null;
StringBuffer sb = new StringBuffer();
while((str = br.readLine()) != null){
sb.append(str+"\r\n");
}
str = sb.toString();
System.out.println(str);
OutputStreamWriter writer = new OutputStreamWriter(outputStream,"utf-8");
writer.write(str);
writer.flush();
outputStream.close();
br.close();
writer.close();
}
}
备份数据可以正常备份,但是恢复就出来了,搞不懂是为什么,下面是错误代码:
Exception in thread "main" java.io.IOException: 管道已结束。
at java.io.FileOutputStream.writeBytes(Native Method)
at java.io.FileOutputStream.write(FileOutputStream.java:260)
at java.io.BufferedOutputStream.write(BufferedOutputStream.java:105)
at sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:202)
at sun.nio.cs.StreamEncoder.implWrite(StreamEncoder.java:263)
at sun.nio.cs.StreamEncoder.write(StreamEncoder.java:106)
at sun.nio.cs.StreamEncoder.write(StreamEncoder.java:116)
at java.io.OutputStreamWriter.write(OutputStreamWriter.java:203)
at java.io.Writer.write(Writer.java:140)
at com.hancai.base.admin.action.Test.recover(Test.java:64)
at com.hancai.base.admin.action.Test.main(Test.java:26)
有没有人跟我一样遇到过这种问题?帮忙解决一下吧。谢谢了。
...全文
相关推荐
毕业论文java jsp ssm mysql 104烯烃厂压力管道管理平台.docx
绪论本文将深入探讨一个基于Java JSP、SSM(Spring、SpringMVC、MyBatis)框架和MySQL数据库的烯烃厂压力管道管理平台的开发过程。
转换加载查询管道Java
**加载**:加载是指将处理后的数据导入到目标系统,如关系型数据库(如MySQL)、NoSQL数据库(如MongoDB)或者数据仓库(如Hadoop HDFS或Amazon S3)。
利用Flume将MySQL表数据准实时抽取到HDFS、MySQL、Kafka
**MySQL**: `mysql-connector-java-5.1.35.jar`是MySQL数据库的Java驱动程序,允许Flume通过JDBC连接到MySQL服务器,执行SQL查询以获取数据。
mysql-connector-java-5.1.5-bin.jar mysql-connector-java-5.1.40-bin
MySQL Connector/J支持的功能包括但不限于:- 支持多种数据库连接模式,如TCP/IP、Unix套接字、命名管道等。- 支持JDBC标准的事务处理。
mysql-connector-java-5.1.40
**连接管理**:创建并管理到MySQL服务器的连接,支持多种连接方式,如TCP/IP、Unix套接字、命名管道等。2.


Web 开发
