簡體   English   中英

如何在C#中將SAme類的多個對象序列化為單個文件並反序列化為這些對象

[英]How to Serialize Multiple Objects of the SAme Class into a single file and Deseialze into Those objects in c#

如何序列相同類的多個對象到一個單一的文件,並Deserialze到在C#中的那些對象

嘗試這樣的事情:

using (FileStream output = 
    new FileStream("C:\\peoplearray.dat", FileMode.CreateNew))
{
    BinaryFormatter bformatter = new BinaryFormatter();
    bformatter.Serialize(output, 
                         new Person[] {
                             new Person{Firstname="Alex"}
                         });
}
using (FileStream input = 
      new FileStream("C:\\peoplearray.dat", FileMode.Open))
{
    BinaryFormatter bformatter = new BinaryFormatter();
    var results = bformatter.Deserialize(input) as Person[];
    foreach (Person p in results)
    {
        Console.WriteLine(p.Firstname);
    }
}

只要人是[可序列化],這將起作用

序列化和反序列化這些對象的數組。

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;

class SerializeMe implements Serializable {
    private static final long serialVersionUID = 1L;

    private int data;

    public SerializeMe (int data) {
        this.data = data;
    }

    public int getData() {
        return data;
    }
}

public class UIDTester {
    public static void main(String... strings) throws Exception {
        File file = new File("out.ser");
        FileOutputStream fos = new FileOutputStream(file);
        ObjectOutputStream oos = new ObjectOutputStream(fos);

        //Create the multiple Objects
        SerializeMe serializeMe = new SerializeMe(1);
        SerializeMe serializeMe1 = new SerializeMe(10);
        SerializeMe serializeMe2 = new SerializeMe(100);
        SerializeMe serializeMe3 = new SerializeMe(1000);

        //Create an array and assign objects
        Object[] obj=new Object[]{serializeMe,serializeMe1,serializeMe2,serializeMe3};
        // Write object array to Stream Class
        oos.writeObject(obj);
        oos.close();

        //Process of Deserializable
        FileInputStream fis = new FileInputStream(file);
        ObjectInputStream ois = new ObjectInputStream(fis);

        //create an array of Object class
        Object[] obj1=(Object[]) ois.readObject();

        //looping the array
        for(int i=0;i<obj1.length;i++){

            SerializeMe dto = (SerializeMe) obj1[i];
            System.out.println("data : " + dto.getData());
        }
        ois.close();
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM