≡
导航
搜索
教程
插件
模型
模板
博客
交易
朋友
Unity 3D 游戏引擎吧
已关注 | 取消
+关注
关注:
46
帖子:
451
签到
05月05日 尚未签到
看帖
图片
精品
视频
共有回帖数
0
个
【教程】关于txt,xml,json文件的读写,及外部文件(夹)的创建
取消只看楼主
收藏
回复
孤单的狼
等级:
关资料到这里取http://tieba.baidu.com/p/3511218374?pid=62629964997&cid=0#62629964997
一、关于txt纯文本的读写
其实.txt,.xml,.json这类文件都属于文本文件,类似的还有.lrc歌词文件,.ini配置文件,.reg注册表文件等等,这类文件所储存的内容都是文本,只是各自有它们自己的格式,便于某些时候专用识别,所以读取txt文本是最基础的文本解析。
静态内部读取txt文本:
这是最简单的方式,建立TextAsset,直接把文本文件拖上去,就可以用了,
public TextAsset TxtFile;
print(TxtFile.text);
这是直接获取文本,也就是string类型的字符串。
要注意的是txt文本的编码格式,要改为UTF-8格式,否则读不出来,虽然不会报错。
动态内部读取文本:
把txt文件放在resources文件夹,利用Resources.Load加载
上面两种方式的代码:
这个函数第一个参数是txt的路径名,第二个参数是第几行,0的话返回“”;File.ReadAllLines()方法就是按路径读取txt文本的内容,返回值是sring[]数组,元素是每行内容。这个是很简单的。类似的File.ReadLines(filepath)是按行读取,每次只取一行,也比较常用。关于路径又有绝对路径和相对路径,绝对路径就不解释了,就是这种"D:/MyTest.txt",相对路径要注意下,如果用Application.dataPath除了要注意移动平台之外,特别要注意Application.dataPath在编辑环境下和在生成exe之后是不一样的,编辑状态下,返回的是Asset位置,生成后Assets不再存在,返回位置是_Data文件夹,所以如果你想加载exe所在位置的txt文本,要先对Application.dataPath进行处理:
传入参数,txt路径,哪一行,修改成的string
大家可以完善一下,我这是知道行数的情况,超出行数的情况大家自己想想怎么改。
Txt文本文件的创建:
创建文本很简单:File.CreateText(fileName),只有一个路径参数,可以先获取路径,再判断是否存在if(!File.Exists(fileName)){
files = File.CreateText(fileName);
}
OK,关于纯文本的读写以及创建,就写这么多了,感觉够详细了,新手也能看懂了吧,大家可以通过创建,读写来运用文本记录数据。
二、关于XML的读写,关于XML相信大家是用得最多的了,这是一种标记语言,说得简单点就是有标记的文本,通过这些标记让我们快速查找,修改,替换等操作,容易操作是xml的优势,同样也是先导入using System.Xml;我们主要用这个类的XmlDocument类,我自己随便写了个xml,内容如下:
XML的写入也同样简单XmlDocument.CreateElement就是写入节点的方法,另外RemoveChild移除某节点,ReplaceChild替换子节点,具体的其他方法各位可以查看MSDN~只是我们用xml一般是用来保存有规律的大量数据,以读为主,先把读数据搞明白吧。
三、关于JSON的读写
.json文件是一种轻量级的数据交换格式,它比纯文本多了一些格式,比XML又少了一些标记,看起来就像数组和哈希表的结合,结构非常简洁,大多用于网络传输,当然本地用来存储数据也是可以的,同样的,先using LitJson;这个类是在LitJson.dll中的,所以还要提前导入这个外部类,我们用它来解析json,LitJson.dll自己去下载个就行,解析json也不难
楼主 2015-10-28 21:25
回复
共有回帖数
0
个
回 帖
表情
图片
视频
欢迎来到本吧,您可以在此发帖和众多大咖交流学习.
选择或直接输入昵称
Tips:支持QQ截图直接粘贴
发表
登录直线网账号
自动登录
忘记密码
免费注册
本吧信息
查看详情
吧主:
mygameplay
本吧公告
优秀文章 【交流】Unity 脚本入门 个人经验及常用方法块 http://www.linecg.com/tieba/content_4292.html 大家可以看一下
我常逛的吧
我管理的吧
Copyright © 2010~2015 直线网 版权所有,All Rights Reserved.沪ICP备10039589号
意见反馈
|
关于直线
|
版权声明
|
会员须知