Unity IO-Zivilisationsfluss, einfache Anwendung und Verständnis der Serialisierung und Deserialisierung

Hier verstehen wir zunächst, was Serialisierung und Deserialisierung sind. Einfach ausgedrückt besteht die Serialisierung darin, andere Typen in Bytesequenztypen (Byte []) umzuwandeln. Diese Art der Konvertierung ist Serialisierung. Bei der Deserialisierung wird der Bytesequenztyp in einen Objekttyp konvertiert. Die Objekttypen können dabei vielfältig sein, in der Regel handelt es sich um eine Werttypkonvertierung. Sogar Bilder und andere Objekte können serialisiert werden, es werden jedoch verstümmelte Zeichen angezeigt.

Erstellung von IO-Dateien:

1. Die erste Möglichkeit besteht darin, es extern zu erstellen

2. Erstellen Sie durch Code

string s = Application.dataPath+"file path";

Zugriff auf Dateiinformationen:

 FileInfo f = new FileInfo(Application.dataPath + "/flod/b.text");

print(f.Name);//Dateiname

if (!f.Exists)//Erstelle b, wenn es nicht existiert
       {            f.Create();        }

f.MoveTo(Application.dataPath + "/flod/c.text");// Datei b in c umbenennen 

IO-Dateioperationen:

File.WriteAllText() schreibt in eine Datei

string s1 = "Hello World";
File.WriteAllText(Application.dataPath + "/flod/b.text", s1);//S1 in Datei b einfügen

 string[] n1 = { "Male", "Female" };
File.WriteAllLines(Application.dataPath + "/flod/b.text", n1);//Überschreiben Sie den Inhalt von s1 mit dem Inhalt von n1 im Formular aus mehreren Zeilen

  string s3 = "become";
  byte[] s4 = Encoding.UTF8.GetBytes(s3);//Serialisierter Inhalt
  File.WriteAllBytes(Application.dataPath + "/flod/b.text", s4);//Mit Text speichern im Byte-Format

File.AppendAllText(Application.dataPath + „/flod/b.text“, „\n123“) // Überschreiben Sie nicht den vorherigen Inhalt und fügen Sie der vorherigen Datei keinen neuen Inhalt hinzu 

Textinformationen lesen:

 File.ReadAllText(); Informationen zu allen Zeilen lesen

//读取所有行数据
 string s = Application.dataPath + "/flod/b.text";
 string s1 = File.ReadAllText(s);
 print(s1);

 File.ReadAllLines(); liest Informationen Zeile für Zeile und liest Informationen Zeile für Zeile. Es muss mit Zeilenumbrüchen verwendet werden.

//一行一行的读取所有的信息
string s = Application.dataPath + "/flod/b.text";
string[] s2 = File.ReadAllLines(s);
print(s2)

 File.ReadAllBytes() deserialisiert und liest alle Zeileninformationen.

//反序列化读取文本所有信息

byte[] s3 =File.ReadAllBytes(Application.dataPath + "/flod/bg.jpg");
string s4 =Encoding.UTF8.GetString(s3);
print(s4);

 Lesen und Schreiben von Dateien im Dateistream-Format:

Methode 1:

Datei-Stream-Lesedatei:

 void FileStreamRead()//文件流形式读的形式,反序列化
    {
        //文件路径
        string n = Application.dataPath + "/flod/b.text";
        if (File.Exists(n))//判断是否存在
        {
            //创建文件流构造函数,FileMode.Open打开文件流,读取内容
                //new FileStream(文件路径,文件的操作形式,文件的读取)
            using (FileStream fs = new FileStream(n, FileMode.Open, FileAccess.ReadWrite))
            {
                //反序列化
                //获取文件的长度,并进行序列化管理
                byte[] b = new byte[fs.Length];

                //获取的是包含文件名称,以及文件内容的的所有字节长度
                int lenth = fs.Read(b, 0, b.Length);
                //反序列化操作,把获取的序列化文件b,进行反序列化操作,进行读取里面的文本内容
                string s =Encoding.UTF8.GetString(b, 0, lenth);
                print(s);
                fs.Close();//关闭文件
            }
        }
    }

Dateistream schreibt in Datei:

  void FileStreamWrite()//文件流形式写的形式,序列化操作
    {
        //查找文件
        string n = Application.dataPath + "/flod/b.text";
        if (File.Exists(n))//判断文件是否存在
        {
            //创建文件流构造函数,FileMode.Create写入文件,读取内容
            //new FileStream(文件路径,文件的操作形式,文件的读取)
            using (FileStream fs=new FileStream(n, FileMode.Create, FileAccess.ReadWrite))
            {
                //需要写入文件的内容
                string s = "Is my God ";
                //对写入文件的内容进行序列化操作
                byte[] s1 =Encoding.UTF8.GetBytes(s);
                //写入文件
                fs.Write(s1, 0, s1.Length);

                fs.Flush();//刷新缓存区
                fs.Close();//关闭文件
            }
        }
    }

Methode 2:


string s = Application.dataPath + "/flod/b.text";

        if (File.Exists(s))
        {
            //读的操作,创建一个读的构造函数

            using (StreamReader reader = new StreamReader(s, Encoding.UTF8))
            {
                while (true)
                {
                    //读取一行内容,在死循环里读取文件里所有的文件
                    string n = reader.ReadLine();
                    if (n == null)//当读取的内容为空时跳出循环
                    {
                        break;

                    }
                }

                reader.Close();
            }

              //写入的操作,创建一个写入的构造函数
            using (StreamWriter writer=new StreamWriter(Application.dataPath + "/flod/b.text"))
            {
                   string s = "Hello World";
                //创建一个WriteLine()写入的方法,把内容写入文件内  
                 writer.WriteLine(s);              
                writer.WriteLine(new char[]{'2','3'});
                writer.Close();
            }

        }
    }

Supongo que te gusta

Origin blog.csdn.net/m0_71624363/article/details/129459598
Recomendado
Clasificación