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

avatar
作者
筋斗云
阅读量:0

在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类对数据进行反序列化操作,最终输出反序列化后的对象属性。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!