using System;
using System.Collections.Generic;
using System.Xml.Serialization;
[Serializable]
public class TestSerilize
[XmlAttribute("Id")]
public int Id { get; set;}
[XmlAttribute("Name")]
public string Name { get; set;}
[XmlElement("List")]
public List<int> List { get; set;}
- 对Xml和对象进行操作
using System.Collections.Generic;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
using System.Text;
using System.Xml.Serialization;
using UnityEngine;
public class ResoucesTest : MonoBehaviour
void Start()
BinarySerTest();
#region Xml
private void SerilizeTest()
TestSerilize testSerilize = new TestSerilize();
testSerilize.Id = 1;
testSerilize.Name = "ceshi";
testSerilize.List = new List<int>();
testSerilize.List.Add(1);
testSerilize.List.Add(2);
testSerilize.List.Add(3);
XmlSerilize(testSerilize);
private void XmlSerilize(TestSerilize testSerilize)
FileStream fileStream = new FileStream(Application.dataPath + "/test.xml", FileMode.Create,
FileAccess.ReadWrite, FileShare.ReadWrite);
StreamWriter sw = new StreamWriter(fileStream, Encoding.UTF8);
XmlSerializer xml = new XmlSerializer(testSerilize.GetType());
xml.Serialize(sw, testSerilize);
sw.Close();
fileStream.Close();
private TestSerilize XmlDeSerilize()
FileStream fs = new FileStream(Application.dataPath+"/test.xml",FileMode.Open,FileAccess.ReadWrite,FileShare.ReadWrite);
XmlSerializer xs = new XmlSerializer(typeof(TestSerilize));
TestSerilize testSerilize = (TestSerilize) xs.Deserialize(fs);
fs.Close();
return testSerilize;
#endregion
#region Binary
private void BinarySerTest()
TestSerilize testSerilize = new TestSerilize();
testSerilize.Id = 5;
testSerilize.Name = "二进制测试";
testSerilize.List = new List<int>();
testSerilize.List.Add(10);
testSerilize.List.Add(18);
BinarySerilize(testSerilize);
private void BinarySerilize(TestSerilize testSerilize)
FileStream fs = new FileStream(Application.dataPath+"/test.bytes",FileMode.Create,FileAccess.ReadWrite,FileShare.ReadWrite);
BinaryFormatter bf = new BinaryFormatter();
bf.Serialize(fs,testSerilize);
fs.Close();
private TestSerilize BinaryDeserilize()
TextAsset textAsset = UnityEditor.AssetDatabase.LoadAssetAtPath<TextAsset>("Assets/test.bytes");
MemoryStream stream = new MemoryStream(textAsset.bytes);
BinaryFormatter bf = new BinaryFormatter();
TestSerilize testSerilize = (TestSerilize) bf.Deserialize(stream);
stream.Close();
return testSerilize;
#endregion
<?xml version="1.0" encoding="utf-8"?>
<TestSerilize xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Id="1" Name="ceshi">
<List>1</List>
<List>2</List>
<List>3</List>
</TestSerilize>
C++调用tinyxml2读写xml本例子一共只需要3个文件获取所有代码请到github下载地址:哔哩哔哩有详细的视频讲解地址:main.cpptinyxml2.htinyxml2.cpp其他
本例子一共只需要3个文件
大家好,本文目的是实现C++调用tinyxml2读写xml文件。
第一个文件是自己编写的main.cpp文件;
第二个文件和第三个文件分别是tinyxml2.h和tinyxml2....
关于为什么需要转换:本人步入Game行业已经4年了,但是配置文件要麽是原生的XML文件,要麽是别人的二进制文件.关于配置文件为啥要转换成二进制文件:主要是为了保密,其次才是节省空间.但是话又说回来了,使用二进制文件的时候,获取信息,需要多一步转化过程.再者,在一个Game项目中可能有多个配置文件,本人目前在开发的有100多个,那么打包成ini二进制是很有必要的.来个例子:XM...
游戏里,我们经常遇到这种情景:要保存一些数据为文件,方便运行时再次读取使用。这就涉及到了序列化与反序列化序列化:通常的来讲,就是把 对象 转成 二进制序列。可以简单的理解为把对象转成一个文件反序列化:反序列化是序列化的相反操作。可以简单的理解为,是把文件转为对象的这么一个过程既然是需要把对象序列化为xml文件,那么为了方便测试,这里定义2个测试类//使用[XmlAttribute]特性,生成的xml标签等于该字段名‘val1’ [ XmlAttribute ] public int Val1;.......
FileStream ,以字节流的方式进行文件的读写,通常用于大文件(二进制文件)的读写
StreamReader和StreamWriter,通常用于对文本文件的读写,使用这个的好处时不同的文本文件有不同的编码格式,SteamReader会帮助我们自动处理,StreamWriter也可以指定写入文本的编码方式。
1.序列化...
WinForm程序中,经常需要保存一些用户的本地配置, 这些设置的特点是: 1、安装的时候可以选择风格。 2、用户可以设置自己的风格,保存,再打开的时候应用这些风格。 这个时候可以使用将类的实例序列化,然后保存在文件中,每次启动程序的时候从中读取,保存设置的时候再写入, 所以要用到序列化。 序列化的方法很多,我这里主要介绍两种 需要被序列化的类用一个简单的Person类来代替 [S...
序列化是将对象状态转换为可保持或传输的格式的过程。与序列化相对的是反序列化,它将流转换为对象。这两个过程结合起来,就使得数据能够被轻松地存储和传输。 .NET 框架提供两种序列化技术: 二进制序列化保持类型保真度,这对于在应用程序的不同调用之间保留对象的状态很有用。例如,通过将对象序列化到剪贴板,可在不同的应用程序之间共享该对象。可将对象序列化到流、磁盘和内存等,还可以通过...
/**//// /// 泛型方法,将当对象序列化保存到XML文件 /// /// 对象 /// 文件保存的位置 public static void XML序列化对象类型>(类型 对象, string 存储路径) ...{ XmlSerializer XS = new
序列化与反序列化
Microsoft .NET Framework提供如下两种序列化技术:
(1)二进制序列化:可以保持类型不变,即可以在应用程序的不同调用之间保留对象的状态
(2)XML和SOAP序列化:仅序列化公共属性和字段,不保存类型
一、二进制的序列化与反序列化
序列化可以被定义为将对象的状态存储到存储媒介的过程,在二进制的序列化过程中,对象的公共字段和私有字段以及类的名称(包括
public static class InfoNeed
public static readonly string path = Path.Combine(Application.dataP...