您的位置:首页 > Web前端 > JavaScript

读取五种格式的配置文件(xml(两种方式),txt,excel,csv,json)

2016-10-28 20:38 946 查看
using Mono.Xml;

using System.Security;

using LitJson;

using System.Collections.Generic;

using System.IO;

using Excel;

using System.Data;

//六种读取文件的方式

public class ReadInfo : MonoBehaviour {

// Use this for initialization
void Start ()
{
//读取TXT文件
//ReadTXT();
//用system.xml读取xml文件
//ReadXML();
//用mono.xml读取xml文件
//ReadXML1();
//读取json文件
//ReadJson();
//读取CSV文件
//ReadCSV();
//读取excel文件
ReadExcel();
}

//读取excel文件
private static void ReadExcel()
{
//路径拼接找到excel文件的路径
string path = Application.dataPath + @"\Excel\Test.xlsx";
Debug.Log(path);
//以字节流的形式加载读取
FileStream stream = File.Open(path, FileMode.Open, FileAccess.Read);
//转型为IExcelDataReader类型
IExcelDataReader reader = ExcelReaderFactory.CreateOpenXmlReader(stream);
//转化为DataSet格式
DataSet result = reader.AsDataSet();

//获取列数和行数
int columns = result.Tables[0].Columns.Count;
int rows = result.Tables[0].Rows.Count;
//遍历每一行
for(int i = 1; i < rows; i ++)
{
Enemy enemy = new Enemy();
//读取第一张表的第i行的第几个配置信息
enemy.name = result.Tables[0].Rows[i][0].ToString();
enemy.hp = int.Parse(result.Tables[0].Rows[i][1].ToString());
enemy.attackPoint = int.Parse( result.Tables[0].Rows[i][2].ToString());
enemy.ToString();
}
}

//读取CSV文件
private static void ReadCSV()
{
List<Enemy> list = new List<Enemy>();
//加载csv文件
TextAsset csv = Resources.Load("CSV/Test") as TextAsset;
//文件切割为每一行
string[] lines = csv.text.Split('\n');
Debug.Log(lines.Length);
//遍历每一行的数据 每一行的数据是以逗号隔开的
for (int i = 1; i < lines.Length; i++)
{
string[] temp = lines[i].Split(',');
Debug.Log(temp.Length);
Enemy enemy = new Enemy();
enemy.name = temp[0];
enemy.hp = double.Parse(temp[1]);
enemy.attackPoint = double.Parse(temp[2]);
enemy.ToString();
list.Add(enemy);
}
}

//读取Json文件
private static void ReadJson()
{
//Debug.Log( data["family_list"][1]["name"]);
List<Famliy> list = new List<Famliy>();
//加载json文件
TextAsset json = Resources.Load("JSON/Test") as TextAsset;
//转化为JsonData类型的数据
JsonData data = JsonMapper.ToObject(json.text);
//进行遍历 family_list相当对根节点
for (int i = 0; i < data["family_list"].Count; i++)
{
Famliy temp = new Famliy();
//根节点下的第几组数据 中的哪一个属性
temp.name = data["family_list"][i]["name"].ToString();
temp.age = int.Parse(data["family_list"][i]["age"].ToString());
temp.tellphone = data["family_list"][i]["tellphone"].ToString();
temp.address = data["family_list"][i]["address"].ToString();
temp.ToString();
list.Add(temp);
}
}

//mono.xml读取xml文件
private static void ReadXML1()
{
//加载xml文件
TextAsset xml = Resources.Load("XML/Test") as TextAsset;
//创建一个安全的语法剖析程式
SecurityParser sp = new SecurityParser();
//读取xml信息
sp.LoadXml(xml.text);
//转化为安全元素类型
SecurityElement se = sp.ToXml();
//遍历这个根元素里的子元素
foreach (SecurityElement child in se.Children)
{
//如果子元素的标签为enemy,获取子元素的属性
if (child.Tag == "Enemy")
{
Debug.Log(child.Attribute("name"));
}
//嵌套的元素
if (child.Tag == "root1")
{
//遍历该元素下的所有元素
foreach (SecurityElement child1 in child.Children)
{
Debug.Log(child1.Attribute("name"));
}
}
}
}

//system.xml读取xml文件
private static void ReadXML()
{
//加载xml文件
TextAsset xml = Resources.Load("XML/Test") as TextAsset;
//声明一个XmlDocument的对象
XmlDocument document = new XmlDocument();
//xml的文件信息加载到上一步声明的对象中
document.LoadXml(xml.text);
//找到root的根节点
XmlNode root = document.SelectSingleNode("root");
//获取此节点下的所有节点
XmlNodeList nodeList = root.ChildNodes;
//遍历所有节点
foreach (XmlNode node in nodeList)
{
//节点的嵌套
if (node.Name == "root1")
{
foreach (XmlNode node1 in node.ChildNodes)
{
Debug.Log(node1.Name);
//将节点转化为xml元素 进行属性的获取
XmlElement element1 = node1 as XmlElement;
Debug.Log(element1.GetAttribute("name"));
}
continue;
}
Debug.Log(node.Name);
XmlElement element = node as XmlElement;
Debug.Log(element.GetAttribute("name"));
}
}

//读取txt文件
private static void ReadTXT()
{
//加载txt文件
TextAsset txt = Resources.Load("TXT/Test") as TextAsset;
//Debug.Log(txt.text);
//字符串的切割 获取信息
string[] str = txt.text.Split('\n');
for (int i = 0; i < str.Length; i++)
{
Debug.Log("字符数组的长度: " + str.Length);
Debug.Log(str[i]);
}
}


}

public class Famliy

{

public string name;

public int age;

public string tellphone;

public string address;

public new void ToString()
{
Debug.Log(name + age + tellphone + address);
}


}

public class Enemy

{

public string name;

public double hp;

public double attackPoint;

public new void ToString()
{
Debug.Log(name + hp + attackPoint );
}


}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  csv json excel xml