溫馨提示×

c# stream的序列化操作怎么做

c#
小樊
123
2024-07-26 02:11:11
欄目: 編程語言

在C#中,可以使用BinaryFormatter類來對流進行序列化操作。以下是一個簡單的示例代碼,演示了如何使用BinaryFormatter類對對象進行序列化操作:

using System;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;

[Serializable]
class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}

class Program
{
    static void Main()
    {
        Person person = new Person { Name = "Alice", Age = 30 };

        // 創建內存流
        using (MemoryStream stream = new MemoryStream())
        {
            // 創建BinaryFormatter對象
            BinaryFormatter formatter = new BinaryFormatter();

            // 對對象進行序列化操作
            formatter.Serialize(stream, person);

            // 將序列化后的數據寫入文件
            File.WriteAllBytes("person.dat", stream.ToArray());
        }

        // 從文件中讀取序列化后的數據
        byte[] data = File.ReadAllBytes("person.dat");

        // 創建內存流
        using (MemoryStream stream = new MemoryStream(data))
        {
            // 創建BinaryFormatter對象
            BinaryFormatter formatter = new BinaryFormatter();

            // 對數據進行反序列化操作
            Person deserializedPerson = (Person)formatter.Deserialize(stream);

            // 輸出反序列化后的對象屬性
            Console.WriteLine($"Name: {deserializedPerson.Name}, Age: {deserializedPerson.Age}");
        }
    }
}

在上面的示例中,我們首先定義了一個Person類,然后創建一個MemoryStream對象,并使用BinaryFormatter類對Person對象進行序列化操作,將序列化后的數據寫入文件。接著,我們從文件中讀取序列化后的數據,并使用BinaryFormatter類對數據進行反序列化操作,最終輸出反序列化后的對象屬性。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女