Copie o código do código da seguinte forma:
importar java.io.BufferedReader;
importar java.io.File;
importar java.io.FileInputStream;
importar java.io.FileOutputStream;
importar java.io.IOException;
importar java.io.InputStream;
importar java.io.InputStreamReader;
importar java.io.OutputStream;
importar java.io.OutputStreamWriter;
teste de classe pública {
public static void main(String[] args) lança IOException{
backup("d:////d.sql");
recuperar("d:////d.sql");
}
backup público estático vazio (caminho da string) lança IOException{
Tempo de execução tempo de execução = Runtime.getRuntime();
//-u é seguido pelo nome do usuário, -p é a senha, é melhor não deixar espaços depois de -p, -family é o nome do banco de dados
Processo processo = runtime.exec("mysqldump -u root -p123456 família");
InputStream inputStream = process.getInputStream();//Obtém o fluxo de entrada e escreve-o como um arquivo .sql
Leitor InputStreamReader = novo InputStreamReader(inputStream);
BufferedReader br = new BufferedReader(leitor);
String s = nulo;
StringBuffer sb = new StringBuffer();
while((s = br.readLine()) != null){
sb.append(s+"//r//n");
}
s = sb.toString();
System.out.println(s);
Arquivo arquivo = novo arquivo(caminho);
arquivo.getParentFile().mkdirs();
FileOutputStream fileOutputStream = novo FileOutputStream(arquivo);
fileOutputStream.write(s.getBytes());
arquivoOutputStream.close();
close();
leitor.close();
inputStream.close();
}
recuperação de void estático público (caminho da string) lança IOException{
Tempo de execução tempo de execução = Runtime.getRuntime();
//-u é seguido pelo nome do usuário, -p é a senha, é melhor não ter espaços depois de -p, -family é o nome do banco de dados, --default-character-set=utf8, esta frase deve ser adicionado
//É porque não adicionei esta frase que o programa foi executado com sucesso, mas o conteúdo do banco de dados ainda é o conteúdo anterior. É melhor escrever o sql completo e colocá-lo no cmd para executá-lo antes que você saiba que o. erro é relatado.
//mensagem de erro:
//mysql: O conjunto de caracteres 'utf-8' não é um conjunto de caracteres compilado e não está especificado no '
//C://Arquivos de Programas//MySQL//MySQL Server 5.5//share//charsets//Index.xml' arquivo ERRO 2019 (HY000): Não é possível
// inicializa o conjunto de caracteres utf-8 (caminho: C://Arquivos de Programas//MySQL//MySQL Server 5.5//share//charsets//),
//Outro problema irritante de codificação, basta definir a codificação padrão ao restaurar.
Processo processo = runtime.exec("mysql -u root -p123456 --default-character-set=utf8 family");
OutputStream outputStream = process.getOutputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(caminho)));
String str = nulo;
StringBuffer sb = new StringBuffer();
while((str = br.readLine()) != null){
append(str+"//r//n");
}
str = sb.toString();
System.out.println(str);
Escritor OutputStreamWriter = new OutputStreamWriter(outputStream,"utf-8");
escritor.write(str);
escritor.flush();
saídaStream.close();
close();
escritor.close();
}
}