انسخ رمز الكود كما يلي:
import java.io.BufferedReader;
استيراد java.io.File؛
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
استيراد java.io.InputStream؛
استيراد java.io.InputStreamReader؛
استيراد java.io.OutputStream؛
import java.io.OutputStreamWriter;
اختبار الطبقة العامة {
public static void main(String[] args) يلقي IOException{
النسخ الاحتياطي("d:////d.sql");
استرداد("d:////d.sql");
}
النسخ الاحتياطي العام للفراغ الثابت (مسار السلسلة) يلقي IOException {
Runtime runtime = Runtime.getRuntime();
// -u متبوعًا باسم المستخدم، -p هو كلمة المرور، ومن الأفضل عدم وجود مسافات بعد -p، -family هو اسم قاعدة البيانات
عملية العملية = runtime.exec("عائلة mysqldump -u root -p123456");
InputStream inputStream =process.getInputStream();// احصل على دفق الإدخال واكتبه كملف .sql
قارئ InputStreamReader = new InputStreamReader(inputStream);
BufferedReader br = new BufferedReader(reader);
سلسلة ق = فارغة؛
StringBuffer sb = new StringBuffer();
while((s = br.readLine()) != null){
sb.append(s+"//r//n");
}
s = sb.toString();
System.out.println(s);
ملف الملف = ملف جديد (المسار)؛
file.getParentFile().mkdirs();
FileOutputStream fileOutputStream = new FileOutputStream(file);
fileOutputStream.write(s.getBytes());
fileOutputStream. Close();
br. Close();
Reader.Close();
inputStream.Close();
}
استرداد الفراغ الثابت العام (مسار السلسلة) يلقي IOException {
Runtime runtime = 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' خطأ في الملف 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");
OutputStreamputStream =process.getOutputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(path)));
سلسلة str = فارغة؛
StringBuffer sb = new StringBuffer();
while((str = br.readLine()) != null){
sb.append(str+"//r//n");
}
str = sb.toString();
System.out.println(str);
OutputStreamWriterwriter = new OutputStreamWriter(outputStream,"utf-8");
Writer.write(str);
الكاتب. فلوش ()؛
outputStream.Close();
br. Close();
الكاتب. قريب ()؛
}
}