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