在C#中,可以使用BinaryFormatter
類來對(duì)流進(jìn)行序列化操作。以下是一個(gè)簡單的示例代碼,演示了如何使用BinaryFormatter
類對(duì)對(duì)象進(jìn)行序列化操作:
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 };
// 創(chuàng)建內(nèi)存流
using (MemoryStream stream = new MemoryStream())
{
// 創(chuàng)建BinaryFormatter對(duì)象
BinaryFormatter formatter = new BinaryFormatter();
// 對(duì)對(duì)象進(jìn)行序列化操作
formatter.Serialize(stream, person);
// 將序列化后的數(shù)據(jù)寫入文件
File.WriteAllBytes("person.dat", stream.ToArray());
}
// 從文件中讀取序列化后的數(shù)據(jù)
byte[] data = File.ReadAllBytes("person.dat");
// 創(chuàng)建內(nèi)存流
using (MemoryStream stream = new MemoryStream(data))
{
// 創(chuàng)建BinaryFormatter對(duì)象
BinaryFormatter formatter = new BinaryFormatter();
// 對(duì)數(shù)據(jù)進(jìn)行反序列化操作
Person deserializedPerson = (Person)formatter.Deserialize(stream);
// 輸出反序列化后的對(duì)象屬性
Console.WriteLine($"Name: {deserializedPerson.Name}, Age: {deserializedPerson.Age}");
}
}
}
在上面的示例中,我們首先定義了一個(gè)Person
類,然后創(chuàng)建一個(gè)MemoryStream
對(duì)象,并使用BinaryFormatter
類對(duì)Person
對(duì)象進(jìn)行序列化操作,將序列化后的數(shù)據(jù)寫入文件。接著,我們從文件中讀取序列化后的數(shù)據(jù),并使用BinaryFormatter
類對(duì)數(shù)據(jù)進(jìn)行反序列化操作,最終輸出反序列化后的對(duì)象屬性。