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

16 篇文章 0 订阅

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

 /// <summary>
    /// 创建一个文件夹
    /// </summary>
    /// <param name="path=路径"></param>
    /// <param name="name=文件名字"></param>
    public void Tool_CreateFloader(string path, string name)
    {
        string tempPath = path + "/" + name;
        if (!Directory.Exists(tempPath))
        {
            Directory.CreateDirectory(tempPath);
        }
    }

    /// <summary>
    /// 写入文本文件
    /// </summary>
    /// <param name="path路径"></param>
    /// <param name="name 文件名"></param>
    /// <param name="mes 信息"></param>
    /// <param name="isnew 是否重新写入"></param>
    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;
    }

    /// <summary>
    /// 读取文件
    /// </summary>
    /// <param name="path"></param>
    /// <param name="name"></param>
    /// <returns></returns>
    public List<string> 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<string> list = new List<string>();
        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;
    }

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

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

/// <summary>
    /// 加密文件文本
    /// </summary>
    /// <param name="conten">文本内容</param>
    /// <param name="key">加密key</param>
    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);
    }

    /// <summary>
    /// 解密文本文件
    /// </summary>
    /// <param name="arrstr">文本文件内容</param>
    /// <param name="ckey">解密key</param>
    /// <returns></returns>
    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

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值