读取五种格式的配置文件(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 {
}
public class Famliy
{
public string name;
public int age;
public string tellphone;
public string address;
}
public class Enemy
{
public string name;
public double hp;
public double attackPoint;
}
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 ); }
}
相关文章推荐
- Table表格导出为Excel、csv、txt、sql、json、xml、Word格式
- Spring 读取XML配置文件的两种方式
- Table表格导出为Excel、csv、txt、sql、json、xml、Word格式
- [转]C#读取CSV,Excel,Txt文件,删除文件,拷贝文件
- matlab处理txt文本文件---数据格式要有规律性,否则要用编写特定方式进行读取
- asp.net导出excel-一行代码实现excel、xml、pdf、word、html、csv等7种格式文件导出功能而且美观-SNF快速开发平台
- 通过POI统一读取Excel文件(兼容97-2003和2007+两种格式)
- MATLAB处理txt文本文件---数据格式要有规律性,否则要用编写特定方式进行读取
- 读取配置文件[方式三]之xml解析配置文件法
- 用URLLoader读取本地txt,xml等格式文件
- 把配置文件以json字符串格式保存,并读取放到一个map中
- subversion服务器两种配置方式所用的配置文件及格式
- MFC操作XML配置文件的两种方式:DOM 和 MSXML
- C#读取CSV,Excel,Txt文件,删除文件,拷贝文件
- 三种方式实现Flex读取XML配置文件
- JAVA中properties配置文件的两种读取方式
- 3、WEB开发由浅入深系列BLOG-3(Servlet两种跳转方式,Servlet读取web.xml,Servlet配置)
- 使用序列化的方式来读取XML配置文件
- spring中读取xml配置文件、获取bean的几种方式
- 以日期格式处理xml文件到json格式的txt文件