1.XML文件的序列化
void Start()
{
TestData Data = new TestData();
Data.PlayerID = 1001;
Data.PlayerName = "Test01";
Data.WeaponID = new List<int>();
Data.WeaponID.Add(1);
Data.WeaponID.Add(2);
XMLSerilize(Data);
}
void XMLSerilize(TestData data)
{
//创建文件流
FileStream fileStream = new FileStream(Application.dataPath + "/TestXML.xml", FileMode.Create, FileAccess.ReadWrite, FileShare.ReadWrite);
//写入流
StreamWriter sw = new StreamWriter(fileStream, System.Text.Encoding.UTF8);
//序列化对象
XmlSerializer xml = new XmlSerializer(data.GetType());
xml.Serialize(sw, data);
sw.Close();
fileStream.Close();
AssetDatabase.Refresh();
}
2.XML反序列化
TestData XMLDeserilize()
{
FileStream fileStream = new FileStream(Application.dataPath + "/TestXML.xml", FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite);
XmlSerializer xml = new XmlSerializer(typeof(TestData));
TestData data = (TestData)xml.Deserialize(fileStream);
fileStream.Close();
return data;
}
数据类:
using System.Xml.Serialization;
[System.Serializable]
public class TestData
{
[XmlAttribute("PlayerID")]
public int PlayerID { set; get; }
[XmlAttribute("PlayerName")]
public string PlayerName { set; get; }
[XmlElement("WeaponID")]
public List<int> WeaponID { set; get; }
}
3.二进制文件的序列化
拿上面的数据类 来序列化二进制
void BinarySerilize(TestData data)
{
FileStream fileStream = new FileStream(Application.dataPath + "/TestBinary.bytes", FileMode.Create, FileAccess.ReadWrite, FileShare.ReadWrite);
BinaryFormatter bf = new BinaryFormatter();
bf.Serialize(fileStream, data);
fileStream.Close();
}
4.二进制文件的反序列化
TestData BinaryDeserilize()
{
TextAsset textAsset = AssetDatabase.LoadAssetAtPath<TextAsset>("Assets/TestBinary.bytes");
MemoryStream st = new MemoryStream(textAsset.bytes);
BinaryFormatter bf = new BinaryFormatter();
TestData data = (TestData)bf.Deserialize(st);
st.Close();
return data;
}