繁体   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