Unity 存储读写Txt 文本文件与简单的 加密解密方式

1:Unity 存储Txt 文本文件 还是直接贴代码吧 代码里面注释写的都很清楚 良好的注释是很有必要的

 /// 
    /// 创建一个文件夹
    /// 
    /// 
    /// 
    public void Tool_CreateFloader(string path, string name)
    {
        string tempPath = path + "/" + name;
        if (!Directory.Exists(tempPath))
        {
            Directory.CreateDirectory(tempPath);
        }
    }

    /// 
    /// 写入文本文件
    /// 
    /// 
    /// 
    /// 
    /// 
    public void Tool_WriteText(string path, String name, string mes, bool isnew)
    {
        string tempPath = path + "//" + name;
        StreamWriter sw = null;
        FileInfo fileInfo = new FileInfo(tempPath);
        Debug.Log(File.Exists(tempPath) + "--tempPath= " + tempPath);
        if ((!File.Exists(tempPath)) || isnew)
        {
            sw = fileInfo.CreateText(); //直接重新写入
        }
        else
        {
            Debug.Log("如果此文件存在则打开");
            sw = fileInfo.AppendText();  //如果此文件存在则打开
        }

        sw.WriteLine(StrEncryption(mes, "123456"));
        sw.Close();
        sw.Dispose();
        sw = null;
    }

    /// 
    /// 读取文件
    /// 
    /// 
    /// 
    /// 
    public List Tool_ReadText(string path, String name)
    {
        string tempPath = path + "//" + name;
        StreamReader sr = null;
        try
        {
            sr = File.OpenText(tempPath);
        }
        catch (System.Exception ex)
        {
            Debug.LogError("该路径下的文件不存在path= " + path + "---exMessage= " + ex.Message);
            return null;
        }

        List list = new List();
        string str;

        //ReadLine 当遇到\n \r 或者是\r\n的时候 此方法返回这前面的字符串,然后内部的指针往后移一位下次从新的地方开始读 直到遇到数据的结尾处返回null结束
        while ((str = sr.ReadLine()) != null)
        {
            //一行一行的读取  //加上 str != string.Empty 就不读空行
            list.Add(ReStrEncryption(str, "123456"));
        }
        //关闭文件
        sr.Close();
        sr.Dispose();

        return list;
    }

    /// 
    /// 删除文件
    /// 
    /// 
    /// 
    public void Tool_DeleteTextFile(string path, string name)
    {
        string tempPath = path + "//" + name;
        File.Delete(tempPath);
    }

2:加密解密  加密解密的key要一样并且是自己去设定

/// 
    /// 加密文件文本
    /// 
    /// 文本内容
    /// 加密key
    public string StrEncryption(string conten, string ckey)
    {
        char[] arrContent = conten.ToCharArray();
        char[] arrKey = ckey.ToCharArray();
        for (int i = 0; i < arrContent.Length; i++)
        {
            arrContent[i] ^= arrKey[i % arrKey.Length];
        }
        return new string(arrContent);
    }

    /// 
    /// 解密文本文件
    /// 
    /// 文本文件内容
    /// 解密key
    /// 
    public string ReStrEncryption(string conten, string ckey)
    {
        char[] arrContent = conten.ToCharArray();
        char[] arrkey = ckey.ToCharArray();
        for (int i = 0; i < arrContent.Length; i++)
        {
            arrContent[i] ^= arrkey[i % arrkey.Length];
        }

        return new string(arrContent);
    }

 

untiy 学习讨论群 184386599

 

你可能感兴趣的:(unity3d,C#)