คัดลอกรหัสรหัส ดังต่อไปนี้:
นำเข้า java.io.BufferedReader;
นำเข้า java.io.File;
นำเข้า java.io.FileInputStream;
นำเข้า java.io.FileOutputStream;
นำเข้า java.io.IOException;
นำเข้า java.io.InputStream;
นำเข้า java.io.InputStreamReader;
นำเข้า java.io.OutputStream;
นำเข้า java.io.OutputStreamWriter;
การทดสอบชั้นเรียนสาธารณะ {
โมฆะคงที่สาธารณะ main (String [] args) พ่น IOException {
สำรอง("d:///d.sql");
กู้คืน("d:///d.sql");
-
การสำรองข้อมูลโมฆะคงที่สาธารณะ (เส้นทางสตริง) พ่น IOException {
รันไทม์ รันไทม์ = Runtime.getRuntime();
//-u ตามด้วยชื่อผู้ใช้ -p คือรหัสผ่าน ไม่ควรเว้นวรรคหลัง -p และ -family คือชื่อของฐานข้อมูล
กระบวนการกระบวนการ = runtime.exec("mysqldump -u root -p123456 family");
InputStream inputStream = process.getInputStream();//รับอินพุตสตรีมและเขียนเป็นไฟล์ .sql
เครื่องอ่าน InputStreamReader = InputStreamReader ใหม่ (inputStream);
BufferedReader br = BufferedReader ใหม่ (ตัวอ่าน);
สตริง s = null;
StringBuffer sb = StringBuffer ใหม่ ();
ในขณะที่((s = br.readLine()) != null){
sb.ผนวก(s+"//r//n");
-
s = sb.toString();
System.out.println(s);
ไฟล์ไฟล์ = ไฟล์ใหม่ (เส้นทาง);
file.getParentFile().mkdirs();
FileOutputStream fileOutputStream = FileOutputStream ใหม่ (ไฟล์);
fileOutputStream.write(s.getBytes());
fileOutputStream.close();
br.ปิด();
reader.ปิด();
inputStream.ปิด();
-
การกู้คืนโมฆะคงที่สาธารณะ (เส้นทางสตริง) พ่น IOException {
รันไทม์ รันไทม์ = Runtime.getRuntime();
//-u ตามด้วยชื่อผู้ใช้ -p คือรหัสผ่าน ไม่ควรเว้นวรรคหลัง -p -family คือชื่อของฐานข้อมูล --default-Character-set=utf8 ประโยคนี้ต้อง จะถูกเพิ่ม
//เป็นเพราะฉันไม่ได้เพิ่มประโยคนี้โปรแกรมจึงทำงานได้สำเร็จ แต่เนื้อหาในฐานข้อมูลยังคงเป็นเนื้อหาก่อนหน้า ทางที่ดีควรเขียน sql ที่เสร็จสมบูรณ์แล้วนำไปไว้ใน cmd เพื่อรันก่อนที่คุณจะรู้ว่า มีการรายงานข้อผิดพลาด
//ข้อความแสดงข้อผิดพลาด:
//mysql: ชุดอักขระ 'utf-8' ไม่ใช่ชุดอักขระที่คอมไพล์และไม่ได้ระบุไว้ในส่วน '
//C://Program Files//MySQL//MySQL Server 5.5//share//charsets//Index.xml' file ข้อผิดพลาด 2019 (HY000): ไม่สามารถ
// เริ่มต้นชุดอักขระ utf-8 (เส้นทาง: C://Program Files//MySQL//MySQL Server 5.5//share//charsets//)
//ปัญหาการเข้ารหัสที่น่ารำคาญอีกประการหนึ่ง เพียงตั้งค่าการเข้ารหัสเริ่มต้นเมื่อทำการกู้คืน
กระบวนการกระบวนการ = runtime.exec("mysql -u root -p123456 --default-Character-set=utf8 family");
OutputStream outputStream = process.getOutputStream();
BufferedReader br = BufferedReader ใหม่ (InputStreamReader ใหม่ (FileInputStream ใหม่ (เส้นทาง))));
สตริง str = null;
StringBuffer sb = StringBuffer ใหม่ ();
ในขณะที่((str = br.readLine()) != null){
sb.ผนวก(str+"//r//n");
-
str = sb.toString();
System.out.println(str);
ตัวเขียน OutputStreamWriter = OutputStreamWriter ใหม่ (outputStream, "utf-8");
นักเขียน.write(str);
นักเขียน.ฟลัช();
เอาท์พุตสตรีม.ปิด();
br.ปิด();
นักเขียน.ปิด();
-
-