Copie el código de código de la siguiente manera:
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;
Prueba de clase pública {
public static void main (String [] args) lanza IOException {
copia de seguridad("d:////d.sql");
recuperar("d:////d.sql");
}
copia de seguridad vacía estática pública (ruta de cadena) arroja IOException {
Tiempo de ejecución tiempo de ejecución = Runtime.getRuntime();
//-u va seguido del nombre de usuario, -p es la contraseña, es mejor no tener espacios después de -p, -family es el nombre de la base de datos
Proceso proceso = runtime.exec("mysqldump -u root -p123456 family");
InputStream inputStream = Process.getInputStream();//Obtenga el flujo de entrada y escríbalo como un archivo .sql
Lector InputStreamReader = nuevo InputStreamReader(inputStream);
BufferedReader br = nuevo BufferedReader(lector);
Cadena s = nula;
StringBuffer sb = nuevo StringBuffer();
while((s = br.readLine()) != nulo){
sb.append(s+"//r//n");
}
s = sb.toString();
System.out.println(s);
Archivo archivo = nuevo archivo (ruta);
archivo.getParentFile().mkdirs();
FileOutputStream fileOutputStream = nuevo FileOutputStream(archivo);
fileOutputStream.write(s.getBytes());
fileOutputStream.close();
br.cerrar();
lector.close();
inputStream.close();
}
La recuperación de vacío estático público (ruta de cadena) arroja IOException {
Tiempo de ejecución tiempo de ejecución = Runtime.getRuntime();
// -u va seguido del nombre de usuario, -p es la contraseña, es mejor no tener espacios después de -p, -family es el nombre de la base de datos, --default-character-set=utf8, esta oración debe ser agregado
// Debido a que no agregué esta oración, el programa se ejecutó exitosamente, pero el contenido de la base de datos sigue siendo el contenido anterior. Es mejor escribir el sql completo y ponerlo en cmd para ejecutarlo antes de saber que el. se informa el error.
//mensaje de error:
//mysql: el juego de caracteres 'utf-8' no es un juego de caracteres compilado y no está especificado en '
//C://Archivos de programa//MySQL//MySQL Server 5.5//share//charsets//Index.xml' file ERROR 2019 (HY000): No se puede
// inicializa el juego de caracteres utf-8 (ruta: C://Archivos de programa//MySQL//MySQL Server 5.5//share//charsets//),
// Otro problema de codificación molesto, simplemente configure la codificación predeterminada al restaurar.
Proceso proceso = runtime.exec("mysql -u root -p123456 --default-character-set=utf8 family");
Flujo de salida flujo de salida = proceso.getOutputStream();
BufferedReader br = nuevo BufferedReader (nuevo InputStreamReader (nuevo FileInputStream (ruta)));
Cadena cadena = nulo;
StringBuffer sb = nuevo StringBuffer();
while((str = br.readLine()) != nulo){
sb.append(str+"//r//n");
}
cadena = sb.toString();
System.out.println(cadena);
Escritor OutputStreamWriter = nuevo OutputStreamWriter(outputStream,"utf-8");
escritor.write(str);
escritor.flush();
salidaStream.close();
br.cerrar();
escritor.close();
}
}