Bei der Serialisierung handelt es sich um den Prozess der Konvertierung eines Objekts in einen Bytestrom zur langfristigen Speicherung im Speicher, in einer Datenbank oder in einer Datei. Sein Hauptzweck besteht darin, den Zustand des Objekts für die spätere Verwendung bei Bedarf zu speichern. Der umgekehrte Vorgang wird Deserialisierung genannt.
Um die Serialisierung nutzen zu können, müssen wir den Namespace System.Runtime.Serialization.Formatters.Binary importieren.
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) ist ein leichtes Datenaustauschformat, das für Menschen leicht zu lesen und zu schreiben ist. Es ist auch für Maschinen einfach zu analysieren und zu generieren.
Wenn Sie eine JSON-Datei schreiben, müssen Sie eine Klasse schreiben und die Eigenschaften werden nicht gekapselt
Hier verwende ich als Beispiel eine Login-Registrierung
Dies ist eine Attributklasse
using System;
//序列化类
[Serializable]
public class Users
{
public string Id;
public string Password;
public Users()
{
}
public Users(string id, string password)
{
Id = id;
Password = password;
}
}
Schreibvorgang
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);
}
Lesevorgang
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("账号或者密码错误");
}
}
}