在C#中,可以使用FileStream類(lèi)來(lái)進(jìn)行數(shù)據(jù)序列化操作。下面是一個(gè)簡(jiǎn)單的示例代碼,演示如何使用FileStream類(lèi)進(jìn)行數(shù)據(jù)序列化:
using System;
using System.IO;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
// 創(chuàng)建一個(gè)自定義類(lèi)
[Serializable]
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
class Program
{
static void Main()
{
// 創(chuàng)建一個(gè)Person對(duì)象
Person person = new Person { Name = "Alice", Age = 30 };
// 創(chuàng)建一個(gè)FileStream對(duì)象,用于寫(xiě)入數(shù)據(jù)
using (FileStream fileStream = new FileStream("person.dat", FileMode.Create))
{
// 創(chuàng)建一個(gè)BinaryFormatter對(duì)象,用于將對(duì)象序列化為二進(jìn)制數(shù)據(jù)
IFormatter formatter = new BinaryFormatter();
// 將Person對(duì)象序列化并寫(xiě)入文件
formatter.Serialize(fileStream, person);
}
// 從文件中讀取并反序列化數(shù)據(jù)
using (FileStream fileStream = new FileStream("person.dat", FileMode.Open))
{
IFormatter formatter = new BinaryFormatter();
// 從文件中讀取數(shù)據(jù)并反序列化為Person對(duì)象
Person deserializedPerson = (Person)formatter.Deserialize(fileStream);
// 輸出反序列化后的Person對(duì)象的屬性值
Console.WriteLine($"Name: {deserializedPerson.Name}, Age: {deserializedPerson.Age}");
}
}
}
在上面的示例中,首先創(chuàng)建了一個(gè)自定義的Person類(lèi),并標(biāo)記為Serializable以表示該類(lèi)可以被序列化。然后在Main方法中,使用FileStream類(lèi)創(chuàng)建一個(gè)文件流,通過(guò)BinaryFormatter類(lèi)將Person對(duì)象序列化并寫(xiě)入文件。接著再次使用FileStream類(lèi)打開(kāi)該文件流,通過(guò)BinaryFormatter類(lèi)讀取文件中的數(shù)據(jù)并將其反序列化為Person對(duì)象,最后輸出反序列化后的Person對(duì)象屬性值。