前言
本次解析所有文件的方法只在PC端下执行有效!!!
一,读取解析本地txt文件
现在桌面新建一个txt文本,内容写自己想要加载的,这边以用户名和密码举例:
新建完成后,保存为UTF_8格式:
然后再Assets下新建一个StreamingAssets文件,此文件夹打包的时候会一起打包到外部,可用来做外部可配置文件,将创建的txt文本放在该文件夹中:
然后在unity中新建一个解析txt文本的脚本:
/// <summary>
/// 读取TXT
/// </summary>
void TxtUserData()
{
string path = Application.streamingAssetsPath + "/userdata.txt";
//----------直读-------------
//WWW www = new WWW(path);
//string strFile = www.text;
//---------逐行读取----------
string[] userStr = File.ReadAllLines(path);
for (int i = 0; i < userStr.Length; i++)
{
string[] keyValue = userStr[i].Split('%'); //分割名字和密码
txtDic.Add(keyValue[0], keyValue[1]);
}
//---------------
foreach (var item in txtDic)
{
Debug.Log("名字:" + item.Key + " 密码:" + item.Value);
}
}
建一个字典类用来存放读取txt文件内容:
最后打印结果:
二,读取解析本地xml文件
新建xml文件和内容步骤如上,不会建xml内容的自行百度;将新建好的xml文件放在StreamingAssets下:
然后在unity中新建一个读取解析xml文件的脚本。
先建一个字典用来存放读取的内容:
/// <summary>
/// 读取XML
/// </summary>
void XmlUserData()
{
string path = Application.streamingAssetsPath + "/userdata.xml";
List<string> username = new List<string>();
List<string> password = new List<string>();
if (File.Exists(path))
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(path);
XmlNodeList node = xmlDoc.SelectSingleNode("item").ChildNodes;
//遍历节点
foreach (XmlElement x in node)
{
switch (x.Name)
{
case "data1":
foreach (XmlElement data1 in x.ChildNodes)
{
switch (data1.Name)
{
case "username":
username.Add(data1.InnerText);
break;
case "password":
password.Add(data1.InnerText);
break;
default:
break;
}
}
break;
case "data2":
foreach (XmlElement data2 in x.ChildNodes)
{
switch (data2.Name)
{
case "username":
username.Add(data2.InnerText);
break;
case "password":
password.Add(data2.InnerText);
break;
default:
break;
}
}
break;
case "data3":
foreach (XmlElement data3 in x.ChildNodes)
{
switch (data3.Name)
{
case "username":
username.Add(data3.InnerText);
break;
case "password":
password.Add(data3.InnerText);
break;
default:
break;
}
}
break;
default:
break;
}
}
for (int i = 0; i < username.Count; i++)
{
xmlDic.Add(username[i], password[i]);
}
}
//---------------
foreach (var item in xmlDic)
{
Debug.Log("名字:" + item.Key + " 密码:" + item.Value);
}
}
打印结果:
三,读取解析本地json文件
解析json文件前先要准备一个LitJson.dll文件,放到Plugins文件夹下。
LitJson.dll下载地址:https://download.csdn.net/download/ThreePointsHeat/12821949
然后在桌面创建json文件,保存格式依旧为UTF—8,内容如下:
将创建好的json文件放在StreamingAssets文件夹下,在unity工程下创建读取解析json的脚本,读取解析json文件需要引用LitJson:
/// <summary>
/// 读取JSON
/// </summary>
void JsonUserData()
{
string Path = Application.streamingAssetsPath + "/userdata.json";
if(File.Exists(Path))
{
StreamReader streamreader = new StreamReader(Path);
string str = streamreader.ReadToEnd();
JsonData jarr = JsonMapper.ToObject(str);
if(jarr.IsArray)
{
for (int i = 0; i < jarr.Count; i++)
{
JsonData jd = jarr[i]["UserData"];
for (int j = 0; j < jd.Count; j++)
{
//Debug.Log(jd[j]["username"] + "\n" + jd[j]["password"]);
jsonDic.Add(jd[j]["username"].ToString(), jd[j]["password"].ToString());
}
}
}
}
else
{
Debug.LogError("文件不存在!");
}
//---------------
foreach (var item in jsonDic)
{
Debug.Log("名字:" + item.Key + " 密码:" + item.Value);
}
}
新建一个字典用来存读取的内容:
打印结果: