Copy kode kodenya sebagai berikut:
impor java.io.BufferedReader;
impor java.io.File;
impor java.io.FileInputStream;
impor java.io.FileOutputStream;
impor java.io.IOException;
impor java.io.InputStream;
impor java.io.InputStreamReader;
impor java.io.OutputStream;
impor java.io.OutputStreamWriter;
Tes kelas publik {
public static void main(String[] args) melempar IOException{
cadangan("d:////d.sql");
memulihkan("d:////d.sql");
}
cadangan kekosongan statis publik (jalur string) memunculkan IOException{
Waktu proses = Waktu proses.getRuntime();
//-u diikuti dengan nama pengguna, -p adalah kata sandi, sebaiknya tidak ada spasi setelah -p, -keluarga adalah nama database
Proses proses = runtime.exec("mysqldump -u root -p123456 family");
InputStream inputStream = process.getInputStream();//Dapatkan aliran input dan tulis sebagai file .sql
Pembaca InputStreamReader = InputStreamReader baru(inputStream);
BufferedReader br = BufferedReader baru(pembaca);
String s = nol;
StringBuffer sb = StringBuffer baru();
while((s = br.readLine()) != null){
sb.append(s+"//r//n");
}
s = sb.toString();
Sistem.keluar.println;
File file = File baru (jalur);
file.getParentFile().mkdirs();
FileOutputStream fileOutputStream = FileOutputStream baru(file);
fileOutputStream.write(s.getBytes());
fileOutputStream.close();
br.close();
pembaca.close();
inputStream.close();
}
pemulihan kekosongan statis publik (jalur string) melempar IOException{
Waktu proses = Waktu proses.getRuntime();
//-u diikuti dengan nama pengguna, -p adalah kata sandi, sebaiknya tidak ada spasi setelah -p, -keluarga adalah nama database, --default-character-set=utf8, kalimat ini harus ditambahkan
//Karena saya tidak menambahkan kalimat ini maka program berhasil dijalankan, tetapi konten dalam database masih merupakan konten sebelumnya. Yang terbaik adalah menulis sql yang sudah selesai dan memasukkannya ke dalam cmd untuk menjalankannya sebelum Anda mengetahuinya kesalahan dilaporkan.
//pesan kesalahan:
//mysql: Kumpulan karakter 'utf-8' bukan kumpulan karakter yang dikompilasi dan tidak ditentukan dalam '
//C://Program Files//MySQL//MySQL Server 5.5//share//charsets//Index.xml' file ERROR 2019 (HY000): Tidak bisa
// menginisialisasi kumpulan karakter utf-8 (jalur: C://Program Files//MySQL//MySQL Server 5.5//share//charsets//),
//Masalah penyandian lain yang mengganggu, cukup atur penyandian default saat memulihkan.
Proses proses = runtime.exec("mysql -u root -p123456 --default-character-set=utf8 family");
OutputStream outputStream = proses.getOutputStream();
BufferedReader br = BufferedReader baru(InputStreamReader baru(FileInputStream(jalur)) baru);
String str = nol;
StringBuffer sb = StringBuffer baru();
while((str = br.readLine()) != null){
sb.append(str+"//r//n");
}
str = sb.toString();
Sistem.keluar.println(str);
Penulis OutputStreamWriter = baru OutputStreamWriter(outputStream,"utf-8");
penulis.write(str);
penulis.flush();
outputStream.close();
br.close();
penulis.close();
}
}