序列化是将一个对象转换成字节流以达到将其长期保存在内存、数据库或文件中的处理过程。它的主要目的是保存对象的状态以便以后需要的时候使用。与其相反的过程叫做反序列化。
为了使用序列化,我们需要引入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 对象简谱:JavaScript Object Notation) 是一种轻量级的数据交换格式, 易于人阅读和编写。同时也易于机器解析和生成。
写入JOSN文件时,你需要写一个类,并且属性不封装
我这里用一个登入注册来举例
这是一个属性类
using System;
//序列化类
[Serializable]
public class Users
{
public string Id;
public string Password;
public Users()
{
}
public Users(string id, string password)
{
Id = id;
Password = password;
}
}
写入操作
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);
}
读取操作
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("账号或者密码错误");
}
}
}