หากต้องการใช้ไบนารี่ซีเรียลไลซ์เซชั่นและดีซีเรียลไลเซชั่นใน Java ขั้นแรกคุณต้องแนะนำแพ็คเกจที่เกี่ยวข้องภายใต้ java.io หรือเขียน import java.io.* โดยตรง
ด้านล่างนี้ เพื่อความสะดวกในการเขียน เราใช้วิธีการคัดลอกไฟล์และทิ้งข้อยกเว้นในการเขียน
คัดลอกรหัสรหัสดังต่อไปนี้:
โมฆะสาธารณะ test6 () พ่น IOException {
ไบต์ [] b = ไบต์ใหม่ [1024]; // กำหนดอาร์เรย์ไบต์บัฟเฟอร์
FileInputStream ใน = new FileInputStream("E://logo.gif");//สร้างวัตถุสตรีมอินพุต
FileOutputStream out = new FileOutputStream("E://My.gif");//สร้างวัตถุสตรีมเอาต์พุต
อินพุต DataInputStream = DataInputStream ใหม่ (ใน); // สร้างสตรีมไบนารีอินพุต
DataOutputStream dout = DataOutputStream ใหม่ (ออก); // สร้างสตรีมไบนารีเอาต์พุต
int num = input.read(b);//อ่านไฟล์ไบนารี่เป็น b
ในขณะที่ (หมายเลข != -1) {
dout.write(b, 0, num);//เขียนอาร์เรย์การอ่านไปยังเอาต์พุตสตรีม
num = input.read(b); // อ่านอีกครั้ง
-
//ปิดวัตถุสตรีมทั้งหมดตามลำดับ
อินพุต.ปิด();
dout.close();
ใน.ปิด();
ออก.ปิด();
System.out.println("คัดลอกสำเร็จ!");
-
รหัสนี้ย่อเพื่อใช้อ้างอิงเท่านั้น!
C# ใช้การดำเนินการซีเรียลไลซ์เซชันแบบไบนารี ขั้นแรก ให้แนะนำเนมสเปซโดยใช้ System.Runtime.Serialization.Formatters.Binary เพื่อดำเนินการซีเรียลไลซ์เซชันและดีซีเรียลไลซ์เซชัน
ตัวอย่าง:
[สามารถซีเรียลไลซ์ได้]
คัดลอกรหัสรหัสดังต่อไปนี้:
PlayManager คลาสสาธารณะ
-
/// <สรุป>
///ซีเรียลไลซ์และบันทึกข้อมูล
/// </สรุป>
โมฆะสาธารณะ บันทึก()
-
FileStream fs = null;
พยายาม
-
fs = new FileStream("เส้นทางในการบันทึกไฟล์", FileMode.Create);
BinaryFormatter bf = ใหม่ BinaryFormatter();
bf.Serialize (fs, วัตถุที่จะบันทึก);
-
catch (ข้อยกเว้น เช่น)
-
MessageBox.Show(เช่น ข้อความ);
-
ในที่สุด
-
fs.ปิด();
-
/// <สรุป>
/// โหลดข้อมูลการทำให้เป็นอนุกรม
/// </สรุป>
โหลดโมฆะสาธารณะ ()
-
FileStream fs = null;
พยายาม
-
fs = new FileStream("เส้นทางของไฟล์", FileMode.OpenOrCreate);
BinaryFormatter bf = ใหม่ BinaryFormatter();
การรับวัตถุ = (ประเภทของวัตถุ) bf.Deserialize (fs); // การแปลงประเภทบังคับ
-
catch (ข้อยกเว้น เช่น)
-
MessageBox.Show(เช่นข้อความ);
-
ในที่สุด
-
fs.ปิด();
-
นี่คือการใช้ไฟล์แบบอนุกรมใน C# จริงๆ แล้วนี่ค่อนข้างง่าย หากคุณไม่เพิ่ม try-catch-final จะใช้โค้ดเพียงสี่ประโยคเท่านั้น
เพื่อนที่ผ่านไปผ่านมาเข้าใจไหม? ไม่เข้าใจก็ถามได้!