温馨提示×

怎样使用FileStream进行数据序列化

小樊
87
2024-07-01 21:39:43
栏目: 编程语言

在C#中,可以使用FileStream类来进行数据序列化操作。下面是一个简单的示例代码,演示如何使用FileStream类进行数据序列化:

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

// 创建一个自定义类
[Serializable]
public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}

class Program
{
    static void Main()
    {
        // 创建一个Person对象
        Person person = new Person { Name = "Alice", Age = 30 };

        // 创建一个FileStream对象,用于写入数据
        using (FileStream fileStream = new FileStream("person.dat", FileMode.Create))
        {
            // 创建一个BinaryFormatter对象,用于将对象序列化为二进制数据
            IFormatter formatter = new BinaryFormatter();

            // 将Person对象序列化并写入文件
            formatter.Serialize(fileStream, person);
        }

        // 从文件中读取并反序列化数据
        using (FileStream fileStream = new FileStream("person.dat", FileMode.Open))
        {
            IFormatter formatter = new BinaryFormatter();

            // 从文件中读取数据并反序列化为Person对象
            Person deserializedPerson = (Person)formatter.Deserialize(fileStream);

            // 输出反序列化后的Person对象的属性值
            Console.WriteLine($"Name: {deserializedPerson.Name}, Age: {deserializedPerson.Age}");
        }
    }
}

在上面的示例中,首先创建了一个自定义的Person类,并标记为Serializable以表示该类可以被序列化。然后在Main方法中,使用FileStream类创建一个文件流,通过BinaryFormatter类将Person对象序列化并写入文件。接着再次使用FileStream类打开该文件流,通过BinaryFormatter类读取文件中的数据并将其反序列化为Person对象,最后输出反序列化后的Person对象属性值。

0