حفظ قائمة صفيف إلى ملف Java
Java آلية حيث يمكن تمثيل كائن كسلسلة من البتات التي تحتوي على بيانات هذا الكائن وهذه المعلومات: نوعه وأنواع البيانات المحفوظة في الكائن.< / span >< span style = "عائلة الخط: وراثة ؛" >بعد حفظ الكائن المتسلسل بنجاح في الملف ، يمكن قراءته من الملف دون مشاكل ثم إلغاء تسلسله. يمكن استخدام وحدات البت التي تمثل الكائن وبياناته لإعادة إنشاء الكائن في الذاكرة.
< / span >< span style = "عائلة الخط: وراثة ؛" >فئات ObjectInputStream و ObjectOutputStream هما دفقان بيانات عالي المستوى يحتويان على طرق حفظ محتويات ArrayList وقراءتها من .< / span >< br / >
< / span >< span style = "عائلة الخط: وراثة ؛" > ArrayList قابل للتسلسل افتراضيا. هذا يعني أنك لست بحاجة إلى تنفيذ الواجهة القابلة للتسلسل من أجل إجراء تسلسل ArrayList.
حفظ ArrayList إلى ملف
تنشئ هذه الفئة ملف اختبار يحتوي على كائن ArrayList كدفق بت. يتم استخدام ملف الاختبار لحفظ الكائن وإعادة إنشائه من تدفقات البت. لاحظ أننا لم نقم بتنفيذ الواجهة القابلة للتسلسل في هذا المثال لأن ArrayList متسلسل بالفعل افتراضيا.import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
الفئة العامة SerializeArrayList {
الفراغ الثابت العام الرئيسي (سلسلة [] args) {
ArrayListal = ArrayList () الجديدة ArrayListstring();
al.add ("مرحبا بالعالم") ؛
al.add ("مرحبا بالعالم") ؛
محاولة {
FileOutputStream fileOut = جديد FileOutputStream ("اختبار") ؛
ObjectOutputStream out = ObjectOutputStream الجديد (fileOut) ؛
out.writeObject (al) ؛
out.close ();
fileOut.close();
System.out.println("\nالتسلسل اكتمل بنجاح...\n");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
< / string >< / string >< / pre>وقت التشغيل:
< pre class = "prettyprint lang-java" >اكتمل التسلسل بنجاح ...
< / pre> تبدو محتويات الثنائي الذي تم إنشاؤه بعد الفتح كما يلي:قراءة وإنشاء ArrayList من ملف
في هذه الفئة، نقوم باسترداد دفق البيانات في شكل بتات من ملف الاختبار الذي قمنا بتخزينه باستخدام الفئة أعلاه. نقوم بتحويل الكائن الذي تم إرجاعه إلى ArrayList مع المدلى بها ونعرض عناصر ArrayList. بالنظر إلى الإخراج ، نحصل على نفس العناصر التي أضفناها إلى القائمة قبل التسلسل.import java.io.FileInputStream;
import java.io.FileNotFoundException ؛
import java.io.IOException;
import java.io.ObjectInputStream;
import java.util.ArrayList;
الفئة العامة SerializeArrayList {
الفراغ العام الثابت الرئيسي (سلسلة [] args) {
// read
ArrayList< سلسلة> arraylist = ArrayList جديد< سلسلة> ();
جرب {
FileInputStream fileIn = جديد FileInputStream ("اختبار") ؛
ObjectInputStream ois = ObjectInputStream الجديد (fileIn) ؛
arraylist = (ArrayList) ois.readObject ();
ois.close();
fileIn.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO كتلة الصيد التي تم إنشاؤها تلقائيا
e.printStackTrace ();
}
System.out.println ("قراءة البيانات: \n");
for (سلسلة o: arraylist)
System.out.println (o) ؛
}
}
< / pre>وقت التشغيل :
< pre class = "prettyprint lang-java" >قراءة البيانات:
hello world
hello world
< / pre>هذا كل شيء! لا تتردد في طرح أسئلتك ؛)