A serialização é o processo de conversão de um objeto em um fluxo de bytes para armazenamento de longo prazo na memória, em um banco de dados ou em um arquivo. Seu principal objetivo é salvar o estado do objeto para uso posterior, quando necessário. O processo oposto é chamado de desserialização.
Para usar a serialização, precisamos importar o namespace System.Runtime.Serialization.Formatters.Binary .
void Start () {
Write();
Read();
}
void Write () {
Persons p = new Persons(1001, "海涛");//将这个值传到下面的文件中
string path = Application.dataPath + "/flie/haitao.txt";
using (FileStream fs = new FileStream(path, FileMode.Create, FileAccess.Write))
{
try
{
BinaryFormatter bf=new BinaryFormatter();//格式化器
bf.Serialize(fs, p);//序列化
}
catch(Exception e)
{
print(e.Message);
}
finally
{
fs.Close();
}
}
}
void Read()
{
string path = Application.dataPath + "/flie/haitao.txt";
using (FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read))
{
try
{
BinaryFormatter bf = new BinaryFormatter();//格式化器
Persons p = (Persons)bf.Deserialize(fs);//反序列话
print(p.Id + "\t" + p.Name);
}
catch (Exception e)
{
print(e.Message);//打赢错误信息
}
finally
{
fs.Close();
}
}
}
JSON (JavaScript Object Notation: JavaScript Object Notation) é um formato de troca de dados leve que é fácil para os humanos lerem e escreverem. Também é fácil para as máquinas analisar e gerar.
Ao escrever um arquivo JSON, você precisa escrever uma classe e as propriedades não são encapsuladas
Aqui utilizo um cadastro de login como exemplo
Esta é uma classe de atributo
using System;
//序列化类
[Serializable]
public class Users
{
public string Id;
public string Password;
public Users()
{
}
public Users(string id, string password)
{
Id = id;
Password = password;
}
}
operação de gravação
public void Write()
{
string path = Application.dataPath + "/File/Users.txt";
Users u = new Users();
u.Id = zhtext.text;
u.Password = mmtext.text;
string s = JsonUtility.ToJson(u) + "\n";//转换格式
File.AppendAllText(path, s);
print(s);
}
operação de leitura
public void Rread()
{
string path=Application.dataPath + "/File/Users.txt";
string[] s=File.ReadAllLines(path);
for(int i=0;i<s.Length;i++)
{
Users u= JsonUtility.FromJson<Users>(s[i]);
if(u.Id== zhtext.text&&u.Password== mmtext.text)
{
print("登入成功");
}
if(i==s.Length)
{
print("账号或者密码错误");
}
}
}